코딩 테스트 합격자 되기 - 1부터 N까지 숫자 중 합이 10이 되는 조합 구하기
풀이
def solution(N):
results = []
def backtrack(sum, selected_nums, start):
if sum == 10:
results.append(selected_nums)
return
for i in range(start, N+1):
if sum + i <= 10:
backtrack(sum+i, selected_nums + [i], i + 1)
backtrack(0, [], 1)
return results
print(solution(6))
풀이 해석
- 조합한 숫자의 합이 10이 되면 해당 조합 결과 리스트에 추가
- 조합한 숫자의 합이 10보다 크면 백트래킹(유망 함수 조건)
댓글남기기