LeetCode 78번 Subsets

수원 개발자·2024년 7월 4일
0
post-thumbnail

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


문제 파악

주어진 리스트의 숫자에서 부분집합을 구하는 문제다.

접근 방법

완전탐색의 백트래킹을 통해서 가능한 모든 상황에 대해서 ans에 추가하고 이를 출력해준다.

코드 구현

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

        def backtracking(start, curr):
            ans.append(curr[:])

            for i in range(start, len(nums)):
                curr.append(nums[i])
                backtracking(i + 1, curr)
                curr.pop()

        backtracking(0, [])
        return ans

배우게 된 점

어떤 상황에서 현재 상태를 추가하고 이를 통해 부분집합을 생성해야 하는지 생각해보게 되었으며 처음에는 nums 전체를 curr에 추가해서 오류가 있었는데 nums의 특정 요소를 하나씩 추가해야 하며 이에 관련된 중복된 요소의 추가에 대해서 생각해보게 되었다.

0개의 댓글