Algorithm

LeetCode) subsets

주코식딩 2022. 5. 21. 00:19

Output과 같이 문자열을 출력하면 되는 문제다. 아주 간단한 집합의 모든 경우의 수를 출력하면 되는 문제이고 LeetCode의 특성상 Output의 원소들은 순서에 상관없이 그냥 return하면 된다.

백준이나 프로그래머스보다 친절한 사이트.. 영어만 아니면 이 곳에서만 알고리즘 연습을 했을 것 같다.

 

 

 

dfs에 대한 강의와 문제를 접했던 후 라서 매우 쉽게 풀었다. 

dfs양식?을 잘 지킨 문제여서 관련 로직을 연습하는데에 큰 도움이 된다.

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

        def dfs(idx, path):
            answer.append(path)

            for i in range(idx, len(nums)):
                dfs(i + 1, path + [nums[i]])

        dfs(0, [])
        return answer