branch와 level이 정해져 있다면 사용하는 것이 좋다(재귀를 사용하기 때문)
--> 문제설계시, 방향, 배열범위, dfs를 몇번타는지를 확인하고 설계하는게 좋다.
#dfs 꼴
def dfs(level):
#(깊이가 깊고 branch가 많다면 이곳에 back tracking용 if문을 사용하는 것이 좋다.)
if level ==n:
# (도출할 값을 만드는 코드가 이곳에 들어감)
return
for i in range(len(arr)):
dfs(level+1) # 재귀로 깊이우선탐색을 함.
dfs(0)
'Algorithm > algorithm' 카테고리의 다른 글
플러드 필(flood fill) (0) | 2022.06.22 |
---|---|
너비우선탐색(bfs) (0) | 2022.04.16 |
그리디 알고리즘(greedy) (0) | 2022.04.14 |
카운팅정렬[counting sort] (0) | 2022.04.14 |
버블정렬[bubble sort] (0) | 2022.04.13 |
댓글