티스토리 뷰

python에는 너무 유용한 내장 함수가 많이 있는데,

그 중에서도 경우의 수를 구할 때 사용되는 내장 함수를 다뤄보겠다.

경우의 수는 전체 탐색이 필요한 알고리즘 문제에서 은근 자주 쓰이므로 기억해둘 것!

 

 

경우의 수를 구할 땐 itertools라는 모듈을 활용한다.

import itertools

 

 

순열

서로 다른 n개 중에서 r개를 '순서'대로 나열하는 경우의 수

# 배열 ['1','2','3','4'] 중에서 서로 다른 원소 두 개를 순서대로 나열하는 경우의 수를 출력한다.
itertools.permutations(['1','2','3','4'], 2)

 

중복순열

중복 가능한 n개 중에서 r개를 '순서'대로 나열하는 경우의 수

# 배열 ['1','2','3','4'] 에서 중복 가능한 원소 두 개를 순서대로 나열하는 경우의 수를 출력한다.
itertools.product((['1','2','3','4']), repeat=2)

 

조합

서로 다른 n개 중에서 r개를 순서에 상관 없이 나열하는 경우의 수

# 배열 ['1','2','3','4'] 중에서 서로 다른 원소 두 개를 순서 상관없이 나열하는 경우의 수를 출력한다.
itertools.combinations(['1','2','3','4'], 2)

 

중복조합

중복 가능한 n개 중에서 r개를 순서에 상관 없이 나열하는 경우의 수

# 배열 ['1','2','3','4'] 중에서 중복 가능한 원소 두 개를 순서 상관없이 나열하는 경우의 수를 출력한다.
itertools.combinations_with_replacement(['1','2','3','4'], 2)

 

 

알고리즘 문제에 따라 적절하게 사용되는 경우의 수가 다르므로 각각의 특징까지 잘 익혀두자.

코딩테스트... 파이팅...

Total
Today
Yesterday
최근에 달린 댓글
최근에 올라온 글
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31