문제37: 부분 집합

Created
Feb 12, 2023 06:13 AM
Tags
모든 탐색 경로가 정답이다.
 

문제


모든 부분 집합을 리턴하라
 

입력


nums = [1,2,3]
 

출력


[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ]
 

풀이


  1. 모든 조합 구하기
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
 
  1. 더 심플한 코드
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

새로운 개념