반응형
이 포스팅은 파이썬 알고리즘 인터뷰를 공부하면서 정리한 내용입니다.
출처 : 파이썬 알고리즘 인터뷰
코드 출처 : 파이썬 알고리즘 인터뷰 깃허브
35. 조합
leetcode 77. Combiantion 문제입니다.
leetcode.com/problems/combinations/
풀이
1. 제가 푼 풀이
def combine(self, n, k):
result = []
def dfs(index, path):
if len(path) == k:
result.append(path)
return
for i in range(index, n+1):
dfs(i+1, path + [i])
dfs(1, [])
return result
2. 책에 나와있는 풀이
def combine(n,k):
results = []
def dfs(elements, start, k):
if k == 0:
results.append(elements[:])
for i in range(start, n+1):
elements.append(i)
dfs(elements, i+1, k-1)
elements.pop()
dfs([], 1, k)
return results
반응형
'Python > 알고리즘' 카테고리의 다른 글
[알고리즘] 위상정렬 (0) | 2021.04.17 |
---|---|
[파이썬 알고리즘 인터뷰] 39. 코스 스케줄 (0) | 2021.03.18 |
[파이썬 알고리즘 인터뷰] 38. 일정 재구성 (0) | 2021.03.13 |
[파이썬 알고리즘 인터뷰] 37. 부분 집합 (0) | 2021.03.13 |
[파이썬 알고리즘 인터뷰] 36. 조합의 합 (0) | 2021.03.13 |