Computer science/Algorithm
Combination(조합)
잔망루피
2021. 8. 18. 16:02
n개의 원소 중 m개를 선택하는 모든 조합을 찾는 알고리즘을 구현
def make_combination(n, combinations, will_pick) :
if will_pick == 0 :
print(combinations)
return
start = combinations[-1] + 1 if combinations else 0
for i in range(start, n) :
combinations.append(i)
make_combination(n, combinations, will_pick - 1)
combinations.pop()
n = 4, will_pick=2라면(4개 중에서 2개를 고르기) 결과는 다음과 같다.
[0, 1], [0, 2], [0, 3], [1, 2], [1, 3], [2, 3]
start는 중복을 피하고 다음 원소들 중에서 고르려고 있다.
참고로 for문 내의 코드를 make_combination(n, combinations + [i], will_pick - 1)로 줄일 수도 있다.
반응형