- 문제 링크: https://leetcode.com/problems/subsets/

- 난이도: Medium

 

모든 조합을 반환하는 문제. backtrack 기초인데, 앞에서부터 하나씩 넣기 or 안넣기 하면서 모든 경우의 수를 구하면 된다

class Solution:
    def subsets(self, nums: List[int]) -> List[List[int]]:        
        sz = len(nums)
        res = []

        def backtrack(cur: int, picked: List[int]):
            if cur == sz:
                res.append(picked)
                return
            
            backtrack(cur+1, picked)
            backtrack(cur+1, picked + [nums[cur]])
        
        backtrack(0, [])

        return res

 

반응형