CS/자료구조 & 알고리즘
깊이 우선 탐색 BFS / 너비 우선 탐색 BFS 개념
ShovelingLife
2022. 6. 14. 22:03
깊이 우선 탐색 (DFS; Depth First Search)
루트 노드에서 시작해서 다음 분기로 넘어가기 전에 해당 분기를 완벽하게 탐색하는 알고리즘을 의미한다. 미로를 탐색할 때 한 방향으로 갈 수 있을 때까지 계속 가다가 더 이상 갈 수 없게 되면 다시 가장 가까운 갈림길로 돌아와서 이곳으로부터 다른 방향으로 다시 탐색을 진행한다. 즉, 넓게(wide) 탐색하기 전에 깊게(deep) 탐색 하는 것이다. 빠르게 모든 경우의 수를 탐색하고자 할 때 사용한다. 스택 이나 재귀함수 로 구현한다.
너비 우선 탐색 (BFS; Breadth First Search)
루트 노드에서 시작해서 인접한 노드를 먼저 탐색 하는 알고리즘이다. 즉, 깊게 (deep) 탐색하기 전에 넓게 (wide) 탐색 하는 것이다. 두 노드 사이의 최단경로 혹은 임의의 경로를 찾고 싶을 때 사용한다. 큐 를 이용해서 구현한다. (FIFO: First In First Out)
출처 : https://yunyoung1819.tistory.com/86
[알고리즘] 깊이 우선 탐색(DFS) 과 너비 우선 탐색(BFS)
[알고리즘] 깊이 우선 탐색(DFS) 과 너비 우선 탐색(BFS) ※ 그래프의 개념 - 정점과 간선으로 이루어진 자료구조의 일종. G = (V, E) ※ 그래프 탐색 - 하나의 정점으로부터 시작하여 차례대로 모든
yunyoung1819.tistory.com