BFS

GRAPH

너비 우선 탐색 (BFS)

큐(Queue)를 이용해 시작 노드에서 가까운 노드부터 한 층씩 넓게 방문하는 과정을 한 단계씩, 또는 자동 재생으로 직접 확인하세요. 시작 노드를 바꿔가며 방문 순서가 어떻게 달라지는지 비교할 수 있습니다.

인접 노드는 항상 알파벳 순서로 방문합니다 — 같은 그래프에서 시작 노드만 바꿔가며 층(레벨)이 달라지는 것을 확인해보세요.

QUEUE (FRONT →)

방문 순서 아직 없음

재생 버튼을 눌러 탐색을 시작하세요.

방문 0 / 9 · 간선 확인 0회

1 / 1

속도
미방문 대기 중 (큐에 있음) 처리 중 방문 완료 탐색 경로

PSEUDOCODE

queue ← [start], visited ← {start}while queue not empty  u ← queue.dequeue()  for each neighbor v of u    if v ∉ visited: visited.add(v); queue.enqueue(v)

어떻게 동작하나요

시작 노드를 큐에 넣고 방문 표시한 뒤, 큐가 빌 때까지 맨 앞 노드를 꺼내 그 이웃들을 확인합니다. 아직 방문하지 않은 이웃은 방문 표시하고 큐의 맨 뒤에 넣습니다. 큐는 먼저 들어간 노드가 먼저 나오므로(FIFO), 시작 노드에서 가까운 노드(1칸 거리)를 모두 방문한 뒤에야 그다음 거리(2칸)로 넘어갑니다 — 그래서 "층(레벨)" 단위로 넓게 퍼지는 모양이 됩니다.

시간·공간 복잡도

시간 복잡도
O(V + E)
공간 복잡도
O(V)
방문 범위
도달 가능한 노드만
특징
최단 거리(칸 수) 보장

V=노드 수, E=간선 수. 가중치 없는 그래프에서 BFS는 시작 노드로부터의 최단 경로(칸 수 기준)를 그대로 보장합니다 — 같은 그래프의 DFS와 방문 순서를 비교해보세요.

같은 그래프를 깊이 우선으로 탐색하면 순서가 완전히 달라집니다 — 깊이 우선 탐색(DFS) 보기 · Algorithm 코스로 돌아가기

1:1 정원제 · 상시 모집

그래프를 손으로 탐색하며 자료구조 감각을 기르세요

당신에게 맞는 커리큘럼은 1:1 상담에서부터 시작됩니다.