78. Subsets

kukudas·2022년 4월 7일
0

Algorithm

목록 보기
32/46

[1, 2, 3] 일때
[], [1], [1, 2], [1, 2, 3], [1, 3], [2] 이 순서대로 구함

class Solution:
    def subsets(self, nums: List[int]) -> List[List[int]]:
        def dfs(index):
            # 부분 집합 찾는거니까 만나는 모든 경우를 정답에 넣어줘야함
            if cur not in answer:
                answer.append(cur[:])

            # 어차피 for문이 list의 len 까지만 도는거라서 탈출조건 안만들어도됨

            for i in range(index, len(nums)):
                cur.append(nums[i])
                dfs(i + 1)
                cur.pop()

        answer = []
        cur = []

        dfs(0)

        return answer

교재 정답

class Solution:
    def subsets(self, nums: List[int]) -> List[List[int]]:
        result = []
        
        def dfs(index, path):
            result.append(path)
            
            for i in range(index, len(nums)):
                dfs(i + 1, path + [nums[i]])
                
        dfs(0, [])
        
        return result

https://leetcode.com/problems/subsets/submissions/

0개의 댓글

관련 채용 정보