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])
'알고리즘 > 알고리즘 정리' 카테고리의 다른 글
numpy 연산의 인덱싱과 속도 (0) | 2023.03.28 |
---|---|
2차원 리스트 특정 열만 취하기 (링크) (0) | 2023.02.27 |
재귀함수 vs 반복문 (0) | 2023.02.23 |
재귀함수 깊이 설정(재귀함수 런타임 에러 나는 경우) (0) | 2023.02.23 |
그리디, 재귀함수 (0) | 2023.02.19 |