이 글은 "파이썬 알고리즘 인터뷰 (박상길 지음)"을 읽고 주관적으로 요약한 글입니다.
문제 정의
모든 부분 집합 리턴
책에서 구현된 코드
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
기억해야할 기법
- 조건 확인해서 필요없는 코드 제거하기
내가 구현한 코드
def subsets(nums: list[int]) -> list[list[int]]:
result = []
def dfs(elts: list, s: int):
result.append(elts)
if len(elts) < len(nums):
for i in range(s,len(nums)):
dfs(elts + [nums[i]], i+1)
dfs([], 0)
return result
- for문의 range로 인해 if문이 필요가 없었다
'책읽기' 카테고리의 다른 글
[파이썬 알고리즘 인터뷰][그래프] 코스 스케줄 (0) | 2021.07.30 |
---|---|
[파이썬 알고리즘 인터뷰][그래프] 일정 재구성 (0) | 2021.07.30 |
[파이썬 알고리즘 인터뷰][그래프] 조합의 합 (0) | 2021.07.29 |
[파이썬 알고리즘 인터뷰][그래프] 조합 (0) | 2021.07.29 |
[쉽게 배우는 운영체제](요약)[Part-3][Ch-9] 가상 메모리 관리 (0) | 2021.07.29 |