조합 구하기(1)

1074 단어 DFSDFS

코드

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 함수 인자에 어떤 것을 넣을지 그리고 어느 지점에서 출력을 할 지 정하는게 관건인 것 같다.

출처 : https://ckd2806.tistory.com/entry/%ED%8C%8C%EC%9D%B4%EC%8D%AC-python-%EC%88%9C%EC%97%B4-%EC%A1%B0%ED%95%A9-%EC%BD%94%EB%93%9C%EB%A1%9C-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0

좋은 웹페이지 즐겨찾기