자료구조와 알고리즘/🥑알고리즘
[알고리즘][그래프] - 4. 조합
얄루몬
2022. 3. 28. 23:52
📖이 포스팅은 '파이썬 알고리즘 인터뷰 - 박상길님' 책을 보고 작성되었습니다.
😎문제 : https://leetcode.com/problems/combinations/
전체 수 n을 입력 받아 k개의 조합을 리턴하라
[DFS로 k개 조합 생성]
class Solution:
def combine(self, n: int, k: int) -> List[List[int]]:
result = []
def DFS(elements, start:int, k:int):
if k == 0:
result.append(elements[:])
return
#자신 이외의 모든 값을 고정하여 재귀 호출
for i in range(start, n+1):
elements.append(i)
DFS(elements, i+1, k -1)
elements.pop()
DFS([],1,k)
return result
[itertools 모듈 사용]
import itertools
class Solution:
def combine(self, n: int, k: int) -> List[List[int]]:
return list(itertools.combinations(range(1,n+1),k))