문제 설명
https://leetcode.com/problems/subsets/
주어진 리스트로 부터 가능한 모든 부분 집합을 구하는 문제다. DFS를 이용해 생성되는 경우의 수를 모두 구했다. 파이썬 알고리즘 인터뷰 책을 읽고 푼 문제라 코드가 같다.
풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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