알고리즘/알고리즘 정리

모든 조합 구하기 알고리즘

에멜라 2023. 2. 24. 00:47

 

emoticons 길이만큼, min discount에서 max discount 범위 사이의 수에 대해 모든 조합을 combination으로 담는 함수

지금과 같이 모든 경우의 수 만큼 계속 하나씩 붙여가며 stack에 쌓고, 원하는 길이만큼 조합이 늘어났다면 이걸, combination에 완성해서 담는 방식임.

 

(level 2 - 이모티콘 할인행사)

 

 

combinations = []
stack = [[]]
while len(stack) > 0:
    simulator = stack.pop()
    if len(simulator) >= len(emoticons):
        combinations.append(simulator)
        continue
    for d in range(min_discount, max_discount+10, 10):
        stack.append(simulator + [d])