BFS 알고리즘 (Breath First Search) 너비 우선 탐색 (BFS)은 큐 자료구조를 사용하여 너비를 우선적으로 탐색하는 탐색 알고리즘입니다. 흔히 최단 경로를 파악하여 최단 길이를 찾아낼 때 활용합니다. 순회의 순서로만 보면 이진 트리의 레벨 순회와 유사한 방식입니다. 위와 같은 이진 트리에 대하여 너비 우선 탐색을 해보겠습니다. 너비 우선 탐색은 기본적으로 '노드를 큐에넣고 -> 꺼내서 출력하고 -> 인접한 노드를 큐에넣고' 를 반복하는 알고리즘입니다. 가장 먼저 방문하는 노드1을 큐에 넣고 방문 완료(visited)합니다. 큐에 들어있던 1을 꺼내서 출력하고 인접해있던 노드 2와 3을 큐에 넣고 방문 완료합니다. 큐에서 먼저들어온 2를 꺼내서 출력하고 인접해있던 노드 4와 5를 큐에 넣..
[알고리즘] 너비 우선 탐색 BFS 알고리즘 (Breath First Search)
BFS 알고리즘 (Breath First Search) 너비 우선 탐색 (BFS)은 큐 자료구조를 사용하여 너비를 우선적으로 탐색하는 탐색 알고리즘입니다. 흔히 최단 경로를 파악하여 최단 길이를 찾아낼 때 활용합니다. 순회의 순서로만 보면 이진 트리의 레벨 순회와 유사한 방식입니다. 위와 같은 이진 트리에 대하여 너비 우선 탐색을 해보겠습니다. 너비 우선 탐색은 기본적으로 '노드를 큐에넣고 -> 꺼내서 출력하고 -> 인접한 노드를 큐에넣고' 를 반복하는 알고리즘입니다. 가장 먼저 방문하는 노드1을 큐에 넣고 방문 완료(visited)합니다. 큐에 들어있던 1을 꺼내서 출력하고 인접해있던 노드 2와 3을 큐에 넣고 방문 완료합니다. 큐에서 먼저들어온 2를 꺼내서 출력하고 인접해있던 노드 4와 5를 큐에 넣..
2021.07.09