Published 2023. 6. 15. 20:06

DFS와 BFS는 그래프 탐색 알고리즘 중 대표적인 두 가지 알고리즘이다.

DFS (Depth First Search)

깊이 우선 탐색으로, 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘이다. 더 이상 방문할 노드가 없을 때까지 모든 경로를 탐색하고, 백트래킹(backtracking)을 통해 경로를 변경해가며 탐색한다. 스택이나 재귀 함수를 이용하여 구현할 수 있다. 가장 먼저 발견한 경로를 탐색하므로 메모리의 사용이 적으나, 최단 경로를 보장하지 않는다.

BFS (Breadth First Search)

너비 우선 탐색으로, 그래프에서 가까운 부분부터 탐색하는 알고리즘이다. 시작 노드에서 시작하여 이웃한 노드들을 모두 방문한 후, 그 이웃한 노드들의 이웃들을 방문하는 식으로 네트워크 전체를 탐색한다. 큐를 이용하여 구현하며, 최단 경로를 보장한다. 하지만 탐색할 대상이 넓은 경우 메모리의 사용이 많아질 수 있다.

DFS와 BFS는 각각의 특징에 따라서 적합한 문제 상황이 다르다. 만약 최단 경로를 찾아야 한다면 BFS를 사용하는 것이 좋고, 모든 경로를 탐색해야 하는 경우에는 DFS를 사용하는 것이 적합하다. 또한, 각각의 알고리즘이 어떻게 구현되는지 이해하고 활용할 수 있어야 한다.

'알고리즘 + 자료구조' 카테고리의 다른 글

Sorting Algorithm(정렬 알고리즘)  (0) 2023.06.17
원시 연산(Primitive Operation)  (0) 2023.06.15
션팅 야드 알고리즘  (0) 2023.06.15
트리  (0) 2023.06.15
Recursion(재귀)  (0) 2023.06.14
복사했습니다!