최대 1 분 소요

문제 출처

풀이

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보다 크면 백트래킹(유망 함수 조건)

댓글남기기