37. Subsets

eunseo kim 👩‍💻·2021년 2월 5일
0

🎯 leetcode - 78. Subsets


🤔 나의 풀이

📌 문제

- 파이썬 알고리즘 인터뷰 37번 문제

📌 날짜

2020.02.05

📌 시도 횟수

1 try

💡 Code

class Solution:
    def subsets(self, nums: List[int]) -> List[List[int]]:
        def dfs(index, path):
            result.append(path)
            if len(path) == len(nums):
                return

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

        result = []
        dfs(0, [])

        return result

💡 문제 해결 방법

- 기본적으로 조합을 구하는 dfs 방법 틀을 사용했다. (이전 게시물 35. Combinations 참고)
- 다만 result.append(path)를 종료 조건 밖으로 빼서 종료 조건 이전에 실행하도록 함으로써
모든 부분 집합을 result에 담는 방법을 사용했다.
- 조합을 구하는 dfs를 잘 이해한다면 정말 쉬운 문제였다. 

💡 새롭게 알게 된 점

- 이렇게 path를 부모 함수로 빼서 사용하지 않고 dfs 내부에서 전달하는 형태로
사용하니까 더 편한 것 같다. for문 마지막에 pop할 필요도 없어서 더 깔끔한 것 같다.

- 선생님 코드랑 처음으로 똑같이 풀었다. 기분이 넘 좋다~~😍

❌ (한번에 맞추지 못한 경우) 오답의 원인

-

profile
열심히💨 (알고리즘 블로그)

0개의 댓글