파이썬
[python] combination, permutation
장비 정
2021. 5. 6. 15:26
from itertools import combinations, permutation
list(combinations(prices, k))
# prices 라는 리스트안의 인자들을 k 개만큼 묶음
# 즉, prices = [4, 5, 6, 7, 8] 이고 k = 2 이면
# [(4,5), (4,6), (4,7) ... (7,8)] 의 형태로 나옴
list(permutation(prices, k))
# prices 라는 리스트 안의 인자들을 k 개 만큼 묶음
# 즉, prices = [4, 5, 6, 7, 8] 이고 k = 2 이면,
# [(4, 5), (4, 6), (4, 7) ... (7, 8)] 의 형태로 나옴
combination 과 permutation 의 차이점은,
숫자를 조합할 때 중복을 어떻게 포함시키느냐이다.
예를 들어 위의 코드에서는 (4, 5) 와 (5, 4) 등의 같은 숫자가 서로 다른 위치에 놓이는 경우가 발생을 하는데,
combination 은 순서를 상관하지 않아 (4, 5) 와 (5, 4) 가 중복이라고 인식하지만,
permutation 은 순서를 신경 써 (4, 5) 와 (5, 4) 가 서로 다른 수열이라고 생각한다.