Breadth First Search (BFS) 넓이 우선 탐색 그래프 또는 트리 데이터 구조를 순회하거나 검색하는 알고리즘 BFS 의 단계 1. initialization 2. 첫번째 노드를 방문하고 해당 노드의 인접 노드 모두 탐색 3. 모든 노드를 방문할 때까지 해당 작업 반복 BFS 를 구현하기 위해서는 큐 자료 구조를 이용할 수 있다. BFS vs DFS 왜 BFS 를 구현할 때는 스택을 사용하지 않고 큐를 사용할까? 해당 노드에 대한 인접 노드 정보를 저장할 때 push 하는데 자료 구조의 특성 상, 스택은 가장 마지막에 넣은 노드를 꺼내게 되고 큐는 가장 처음에 넣은 노드를 꺼내게 된다. 이때, 넓이 우선 탐색을 하려면 같은 레벨의 노드를 우선적으로 탐색해야 하므로 다음 레벨의 인접 노드보다..