이모저모

leetcode - subsets 부분집합 구하기 (DFS) 본문

coding/알고리즘,자료구조

leetcode - subsets 부분집합 구하기 (DFS)

Jeo 2022. 1. 22. 14:30

1. 손으로 정리

2. 코드로 해보기

처음에는, 특정 값이 없다는 의미로 0을 배치해두려고 했는데 0이 nums의 원소로 들어오는 경우도 있었다.. 그래서 결국 개연성 전혀 없지만 "@"로 배정 안 되었다는 의미를 나타내보았다.. 흠.. 그리고 일단 일단 무의미한 값 배정했다가 빼기보다는, 애초부터 포함 안 시키면 좋겠다 싶은데.. 그러면 작업이 한 차례 줄어드니까. 더 생각해보 - 거나 다른 분들 코드 좀 봐야지!

class Solution(object):
    def subsets(self, nums):
        """
        :type nums: List[int]
        :rtype: List[List[int]]
        """

        res = ["@"]*len(nums)
        result_list = []

        def DFS(L):
            if L == len(nums):
                result = res[:]
                while "@" in result:
                    result.remove("@")
                result_list.append(result)
                return

            else:
                res[L] = nums[L]
                DFS(L+1)
                res[L] = "@"
                DFS(L+1)

        DFS(0)
        return result_list

3. 제출

역시 느리다 :)ㅎㅎ

 

Comments