모든 탐색 경로가 정답이다.
문제
모든 부분 집합을 리턴하라
입력
nums = [1,2,3]
출력
[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ]
풀이
- 모든 조합 구하기
results = [] def dfs(elements, start, k): if k == 0: results.append(elements[:]) return for i in range(start, len(nums)): elements.append(nums[i]) dfs(elements, i+1, k-1) elements.pop() for k in range(4): dfs([], 0, k) return results
- 더 심플한 코드
results = [] def dfs(index, path): results.append(path) for i in range(index, len(nums)): dfs(i+1, path + [nums[i]]) dfs(0, []) return results