[Python] 파이썬 조합 순열 , itertools combinations, permutations
파이썬에서 라이브러리를 사용한다면 조합, 순열을 쉽게 사용할 수 있다.
from itertools import combinations, permutations
Combinations
Combinations는 순서 상관 없이 입력 문자열로 만들 수 있는 모든 조합을 출력한다.
아래 예시를 보자.
문자열 'abcde'와 숫자 3을 입력한 결과 5개의 문자를 순서 상관 없이 3개씩 묶어 만들 수 있는 모든 경우를 출력한다.
결과가 맞는지 개수로 확인해보자.
조합 공식은 nCr = n!/r!(n-r)! 이다.
예시의 경우 n=5, r=3 이므로 가능한 조합의 개수는 5!/(3!*2!) = 10 이다.
코드 출력 개수도 10개이므로 개수가 맞는 것을 확인했다.
Permutations
Permutations는 순서를 고려하여 입력 문자열로 만들 수 있는 모든 순열을 출력한다.
print(list(permutations('abcde', 3)))
출력해보면 아래처럼 5개의 문자를 순서 고려하여 3개씩 묶어 만들 수 있는 모든 경우를 출력한다.
동일하게 개수로 확인해보자.
순열 공식은 nPr = n!/(n-r)! 이다.
예시에서 n=5, r=3 이므로 가능한 순열의 개수는 5!/2! = 60 이다.
print(len(list(permutations('abcde', 3))))
결과의 len을 찍어보면 60이 나오는 것을 볼 수 있다.
'Python' 카테고리의 다른 글
[Python] 정규식을 이용하여 특정 개수 문자 패턴 찾기 (0) | 2025.02.08 |
---|---|
[Python] 파이썬 2차원 리스트를 1차원으로 만드는 방법 / sum, itertools (0) | 2025.02.07 |
[코테준비/Python] 문제풀이 Tips / 시간 정렬 (0) | 2025.02.06 |
[Python] deque의 개념과 사용법, 장점 (0) | 2025.02.06 |
[Python] 유용한 빌트인 함수 모음 / replace, re.compile, lower, 합집합교집합, Counter, lambda로 sorted() (0) | 2025.02.05 |