BFS는 너비 우선 탐색(Breadth-First-Search)의 약자이고, DFS와 마찬가지로 그래프의 탐색을 위한 알고리즘이다. 시작 정점에서 가까운 정점을 먼저 방문하고, 멀리 떨어진 정점을 나중에 방문하는 알고리즘이다. 즉 , 깊게(deeply) 탐색하는 것이 아닌 넓게(widely) 탐색하는 알고리즘이며 , 두 노드 사이 최단 경로나 임의의 경로를 알고 싶을 떄 너비 우선 탐색을 선택한다. 너비 우선 탐색의 특징 -직관적이지 않은 면이 있다. (시작 노드부터 시작해서 거리에 따라 단계적으로 탐색한다.) -BFS는 재귀적으로 동작하지 않는다. -어떤 정점을 방문했었는지 여부를 반드시 검사해야 한다 ( 그렇지 않으면 무한루프에 빠질 수 있다.) -BFS는 방문한 노드들을 차례로 저장한 후 꺼낼 수 ..