Subsets
문제 파악
주어진 숫자 리스트 nums
의 모든 부분집합을 생성
접근 방법
백트래킹을 사용하여 부분집합을 생성
- 현재 인덱스부터 시작하여 숫자를 하나씩 추가하고 재귀적으로 백트래킹 수행
- 각 단계에서 현재 부분집합을 결과 리스트에 추가
- 재귀 호출이 종료되면 선택한 숫자를 현재 부분집합에서 제거
코드 구현
class Solution:
def subsets(self, nums: List[int]) -> List[List[int]]:
def backtrack(start, curr):
ans.append(curr[:])
for i in range(start, len(nums)):
curr.append(nums[i])
backtrack(i + 1, curr)
curr.pop()
ans = []
backtrack(0, [])
return ans
Leave a comment