문제 링크

https://leetcode.com/problems/combination-sum/

문제 정리

접근 방법

코드 진행

  1. dfs함수에 최초값을 넣어 실행시킨다.

    dfs(comb=target, index=0, path=[])
    
  2. dfs함수 생성

    1. 첫번재 종료조건 comb가 0보다 작아질때

      def dfs(comb, index, path):
              # (1) 종료조건 - 0보다 작아질때
              if comb < 0:
                  return
      
    2. 두번째 종료조건 comb=0으로 정답처리

      # (2) 종료조건 - 0일때 결과값에 추가.
              if comb == 0:
                  result.append(path)
                  return
      
    3. 재귀방식으로 처리

      # 반복문 시작
              for i in range(index, len(candidates)):
                  # comb에 target에서 빼나간다. path에는 값 누적
                  dfs(comb - candidates[i], i, path + [candidates[i]])
      

      재귀가 작동하는 방식.

      Untitled