깊이우선탐색 (DFS : Depth First Search)
깊이우선탐색(DFS) 이란?
- 한 노드에서 그 노드의 깊이에 있는 모든 노드들을 탐색한 후에 다음 너비에 있는 노드를 탐색하는 알고리즘이다. (BFS와 반대)
깊이우선탐색(DFS)의 특징
- 스택으로 구현할 수도 있지만 자기 자신을 호출하는 재귀를 통해 구현할 수도 있다.
- 탐색한 노드를 방문했는지의 여부를 반드시 검사해야한다.
깊이우선탐색(DFS)의 원리
출처 : 위키피디아
깊이우선탐색(DFS) 파이썬 코드 구현
- Stack을 이용한 DFS
def DFS(graph, start_node):
visited = []
stack = [start_node]
while stack:
n = stack.pop()
if n not in visited:
visited.append(n)
stack += graph[n] - set(visited)
return visited
- 재귀를 이용한 DFS
def DFS(graph, start, visited=[]):
visited.append(start)
for node in graph[start]:
if node not in visited:
DFS(graph, node, visited)
return visited```
Author And Source
이 문제에 관하여(깊이우선탐색 (DFS : Depth First Search)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hyoda_mon/깊이우선탐색-DFS-Depth-First-Search저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)