Post

leetcode(리트코드)-40 Combination Sum II(python)

leetcode(리트코드)-40 Combination Sum II(python)

leetcode 40 - Combination Sum II 문제입니다.

1. 문제

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


2. Input , Output


3. 분류 및 난이도

Medium 난이도 문제입니다.
Top Interview 문제입니다.


4. 문제 해석

  • 주어진 리스트의 요소를 통해 target을 만들어야합니다.
  • 만들 수 있는 경우의 수를 리스트에 넣어 반환합니다.
  • DFS를 이용하면 풀 수 있습니다.

5. code

코드설명

python

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution:
    
    def combinationSum2(self, candidates: List[int], target: int) -> List[List[int]]:
        res = []
        self.DFS(sorted(candidates),target,0,[],res)
        return res
    def DFS(self, nums,target,idx,path,res):
        if target == 0 : 
            res.append(path)
        elif target < 0 :
            return
        for i in range(idx,len(nums)):
            #중복 처리
            if i > idx and nums[i] == nums[i-1]:
                continue
            self.DFS(nums,target-nums[i],i+1,path + [nums[i]],res)
            

6. 결과 및 후기, 개선점

필요시 c++로 짜드리겠습니다.

This post is licensed under CC BY 4.0 by the author.