목차
- 순열
- 중복순열
- 조합
- 중복 조합
순열
# permutations 이용
from itertools import permutations
items = ['A', 'B', 'C']
for i in range(1, len(items)):
print(list(permutations(items)))
print('--------------------------------')
for i in range(1, len(items)):
print(list(permutations(items, 2))) #2개의 원소를 가지고 순열을 만듦
출력 〉 | [('A', 'B', 'C'), ('A', 'C', 'B'), ('B', 'A', 'C'), ('B', 'C', 'A'), ('C', 'A', 'B'), ('C', 'B', 'A')] [('A', 'B', 'C'), ('A', 'C', 'B'), ('B', 'A', 'C'), ('B', 'C', 'A'), ('C', 'A', 'B'), ('C', 'B', 'A')] -------------------------------- [('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')] [('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')] |
중복순열
# product 이용
from itertools import product
#반복 가능한 객체 여러개 가능
for i in product([1, 2, 3], 'ab'):
print(i)
#repeat 지정
for i in product([1, 2, 3], repeat = 2):
print(i)
출력 〉 | (1, 'a') (1, 'b') (2, 'a') (2, 'b') (3, 'a') (3, 'b') ------------------------------ (1, 1) (1, 2) (1, 3) (2, 1) (2, 2) (2, 3) (3, 1) (3, 2) (3, 3) |
순열
# combinations 이용
from itertools import combinations
#개수 지정
items = ['A', 'B', 'C']
for i in range(1, len(items)):
print(list(combinations(items, 2)))
출력 〉 | [('A', 'B'), ('A', 'C'), ('B', 'C')] [('A', 'B'), ('A', 'C'), ('B', 'C')] |
중복 조합
# combinations_with_replacement 이용
from itertools import combinations_with_replacement as c
#개수 지정
for i in c([1, 2, 3, 4], 2):
print(i)
출력 〉 | (1, 1) (1, 2) (1, 3) (1, 4) (2, 2) (2, 3) (2, 4) (3, 3) (3, 4) (4, 4) |
'⏳ 알고리즘 > python 알고리즘 개념' 카테고리의 다른 글
런너(runner) 기법이란?? (0) | 2021.05.09 |
---|---|
탐욕 알고리즘(Greedy) (0) | 2020.02.01 |
그래프·트리 순회(깊이우선탐색, 너비우선탐색) (0) | 2020.01.21 |
트리(3) - 자가 균형 이진 탐색 트리 (0) | 2020.01.20 |
트리(2) - 이진탐색트리 (0) | 2020.01.20 |