-
순열과 조합 - combinations, permutations언어/python 2021. 1. 9. 00:40
- 파이썬에서는 itertools.permutation를 이용하면, 순열을 구할 수 있다.
from itertools import permutations pool = ['A', 'B', 'C', 'D'] print(list(map(''.join, permutations(pool)))) # 모든 원소로 순열 만들기 print(list(map(''.join, permutations(pool, 2)))) # 2개의 원소로 순열 만들기 # 이때, pool은 list여야 한다.
>> ['ABCD', 'ABDC', 'ACBD', 'ACDB', 'ADBC', 'ADCB', 'BACD', 'BADC', 'BCAD', 'BCDA', 'BDAC', 'BDCA', 'CABD', 'CADB', 'CBAD', 'CBDA', 'CDAB', 'CDBA', 'DABC', 'DACB', 'DBAC', 'DBCA', 'DCAB', 'DCBA']
>> ['AB', 'AC', 'AD', 'BA', 'BC', 'BD', 'CA', 'CB', 'CD', 'DA', 'DB', 'DC']
- 조합은 itertools.combinations를 사용해서 구할 수 있다.
(순열과 다르게 순서가 없다.)
from itertools import combinations pools = ['A', 'B', 'C', 'D'] for i in range(1, len(pools)): print(list(map(''.join, combinations(pools, i)))) # 조합을 만들려는 리스트와 조합의 수를 반드시 넘겨줘야한다.
>> ['A', 'B', 'C', 'D']
['AB', 'AC', 'AD', 'BC', 'BD', 'CD']
['ABC', 'ABD', 'ACD', 'BCD']* 이 둘을 사용해 "2019 카카오 신입 공채 1차 후보키 문제" 도 풀어보자
'언어 > python' 카테고리의 다른 글
[Python] 리스트 삭제 (0) 2021.03.03