BFS는 그래프를 레벨 단위로 탐색하여, 더 깊이 들어가기 전에 한 노드의 모든 이웃을 방문합니다. **queue(큐)**를 사용하며 가중치 없는 그래프에서 최단 경로(가장 적은 간선 수)를 찾습니다.
개념
시작점에서 출발하여 그것을 큐에 넣고, 반복적으로 노드를 큐에서 꺼내 방문하지 않은 이웃을 방문하고 큐에 넣습니다. visited 셋이 재방문을 방지합니다.
예시
python
collections deque
():
visited = {start}
queue = deque([start])
order = []
queue:
node = queue.popleft()
order.append(node)
nbr graph[node]:
nbr visited:
visited.add(nbr)
queue.append(nbr)
order
graph = {: [, ], : [], : [], : []}
bfs(graph, )
