DFS 16

[도구정리] DFS, BFS

DFS(깊이 우선 탐색) and BFS(너비 우선 탐색) 두 가지 모두 조건에 부합하는 정답을 찾기 위해 탐색을 실행하는 알고리즘이다. BFS는 너비 우선 탐색을 진행한다. 위의 그림을 보면 루트 노드에서 시작해서 인접한 노드 순으로 방문하며 탐색을 진행하는 것이다. 따라서 루트 노드인 A에서 시작하여 그다음 인접 노드 B, C, D를 탐색한 후 그것의 인접 노드인 E, F 순으로 탐색을 마친다. -> 주로 두 노드 사이의 최단 거리 탐색에 많이 사용된다. DFS는 깊이 우선 탐색을 진행한다. 그림에서 알 수 있듯, A를 탐색하면 그 다음 노드인 BCD 중 하나를 탐색 후 그 분기에 대한 완전 탐색을 마친 뒤에야 다음 분기로 진행하는 것이다. ->예를 들면, 미로를 따라가다가 길이 막히면 다시 돌아와서 ..