[1, 2, 3] 일때
[], [1], [1, 2], [1, 2, 3], [1, 3], [2] 이 순서대로 구함
class Solution:
def subsets(self, nums: List[int]) -> List[List[int]]:
def dfs(index):
# 부분 집합 찾는거니까 만나는 모든 경우를 정답에 넣어줘야함
if cur not in answer:
answer.append(cur[:])
# 어차피 for문이 list의 len 까지만 도는거라서 탈출조건 안만들어도됨
for i in range(index, len(nums)):
cur.append(nums[i])
dfs(i + 1)
cur.pop()
answer = []
cur = []
dfs(0)
return answer
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