조합 구하기(1)
코드
l = ['a', 'b', 'c', 'd']
n = len(l)
r = 2
answer = []
def dfs(idx, list):
if len(list) == r:
answer.append(list[:])
return
for i in range(idx, n):
dfs(i+1,list+[l[i]])
dfs(0, [])
print(answer)
느낀점
코딩 테스트를 보다가 보면 DFS, BFS 문제가 많이 나오는 것을 알 수 있다. 그리고 순열과 조합 같은 경우에도 python에서 제공하는 itertools 패키지를 사용하지 못하는 경우가 있다. BFS와 DFS에 대한 기초를 확실히 해야할 것 같다.
그리고 이 문제는 그림을 그려보면서 푸니 더 이해가 잘 되었다.
'코드 몽키' 님의 블로그에서 퍼왔는데 이해하기 편했다. DFS 함수 인자에 어떤 것을 넣을지 그리고 어느 지점에서 출력을 할 지 정하는게 관건인 것 같다.
Author And Source
이 문제에 관하여(조합 구하기(1)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@wnsgur9701/DFS-조합-구하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)