파이썬 기본 라이브러리 itertools를 활용해서 여러 조합을 구할 수 있다.
num_list = [1,2,3,4]
# 순서 상관 있을 경우
from itertools import permutations
list(permutations(num_list,2))
list(permutations(num_list,3))
# [(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)]
# [(1, 2, 3), (1, 2, 4), (1, 3, 2), (1, 3, 4), (1, 4, 2), (1, 4, 3), (2, 1, 3), (2, 1, 4), (2, 3, 1), (2, 3, 4), (2, 4, 1), (2, 4, 3), (3, 1, 2), (3, 1, 4), (3, 2, 1), (3, 2, 4), (3, 4, 1), (3, 4, 2), (4, 1, 2), (4, 1, 3), (4, 2, 1), (4, 2, 3), (4, 3, 1), (4, 3, 2)]
# 순서 상관 없을 경우
from itertools import combinations
list(combinations(num_list,2))
list(combinations(num_list,3))
# [(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]
# [(1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)]
# 여러 리스트, 문자열을 통해 곱집합 구하기
from itertools import product
iterable1 = 'ABC'
iterable2 = ['cat','dog']
iterable3 = 'hi'
list(product(iterable1, iterable2, iterable3))
# [('A', 'cat', 'h'), ('A', 'cat', 'i'), ('A', 'dog', 'h'), ('A', 'dog', 'i'), ('B', 'cat', 'h'), ('B', 'cat', 'i'), ('B', 'dog', 'h'), ('B', 'dog', 'i'), ('C', 'cat', 'h'), ('C', 'cat', 'i'), ('C', 'dog', 'h'), ('C', 'dog', 'i')]
하단은 itertools.combination을 활용한 문제.
'Programming > Python' 카테고리의 다른 글
#5 Python 코딩테스트 이진 탐색 (0) | 2021.10.20 |
---|---|
#4 Python 코딩테스트 정렬 알고리즘 (0) | 2021.10.20 |
#2-3 Python 코딩테스트 그리디 알고리즘 , DFS & BFS (0) | 2021.10.20 |
Python 입력 값 다양하게 받기 (input, map, split) (0) | 2021.10.19 |
#1 Python 코딩테스트 대비 여러 Tip 정리 (0) | 2021.10.07 |
댓글