II-11 BFS와 DFS의 역할·자료구조·간선 분류 — 완전 초보자 Masterclass
먼저 이 문제의 정체부터
BFS는 물결처럼 거리 레벨별로 퍼지고 DFS는 한 길을 끝까지 파고듭니다. 이 그림에서 Queue와 Stack, shortest edge count와 discovery interval이 자연스럽게 나옵니다.
BFS는 주변 수색대를 동심원으로 넓히고 DFS는 동굴 한 갈래를 끝까지 탐사합니다.
이 문항의 풀이 목표는 정답 label 암기가 아니라 다음 절차를 재현하는 것입니다. unweighted, queue, undirected, always라는 제한 단어를 먼저 동그라미 칩니다.
복기 시험지는 공식 답안지가 아니므로 문언과 selection rule이 충돌하면 그 사실을 표시하고 현재 강의 자료로 각 보기를 독립 검증합니다.
0. 필요한 개념을 처음부터 배우기
개념 1 · 문제의 정체를 생활 언어로
BFS는 물결처럼 거리 레벨별로 퍼지고 DFS는 한 길을 끝까지 파고듭니다. 이 그림에서 Queue와 Stack, shortest edge count와 discovery interval이 자연스럽게 나옵니다.
이 문항에서 가장 먼저 붙잡을 문장은 'BFS는 unweighted graph에서 edge 수 기준 shortest path를 찾는다.'입니다. 용어를 외우기 전에 이 문장이 어떤 상황을 말하는지 작은 예를 만들어 확인합니다.
이 절에서 꼭 기억할 것
- BFS는 unweighted graph에서 edge 수 기준 shortest path를 찾는다.
- unweighted, queue, undirected, always라는 제한 단어를 먼저 동그라미 칩니다.
개념 2 · 반드시 알아야 하는 네 개의 뼈대
첫째, BFS는 unweighted graph에서 edge 수 기준 shortest path를 찾는다. 둘째, DFS frontier는 recursion stack/stack으로 관리하며 queue가 필수라는 말은 거짓이다.
셋째, undirected DFS edge는 tree 또는 back edge다. 넷째, 둘 다 reachability 전체를 탐색하면 같은 reachable vertices를 방문할 수 있다. 이 네 문장을 서로 섞지 않고 별도 체크박스로 기억해야 합니다.
이 절에서 꼭 기억할 것
- BFS는 unweighted graph에서 edge 수 기준 shortest path를 찾는다.
- DFS frontier는 recursion stack/stack으로 관리하며 queue가 필수라는 말은 거짓이다.
- undirected DFS edge는 tree 또는 back edge다.
- 둘 다 reachability 전체를 탐색하면 같은 reachable vertices를 방문할 수 있다.
개념 3 · 강의 정의를 초보자 언어로 해체
BFS는 물결처럼 가까운 층부터 퍼지고, DFS는 한 갈래를 끝까지 따라갔다 돌아온다. 위상 정렬(topological sorting)은 DAG에서 선후관계를 한 줄로 세우는 작업이다.
방향 그래프(directed graph)는 G=(V,E), E ⊆ V × V이다. 무방향 그래프(undirected graph)는 간선 관계가 대칭이다. BFS(Breitensuche)는 FIFO 큐를 사용하고, DFS(Tiefensuche)는 재귀·스택을 사용한다. DAG는 방향 비순환 그래프(directed acyclic graph)이다.
수식으로 정확히 쓰기
핵심 규칙인접 리스트에서 BFS·DFS·위상 정렬·Kosaraju는 \(O(|V|+|E|)\)O(|V|+|E|)이다. 위상 순서에서는 모든 간선 (u,v)에 대해 u가 v보다 앞에 와야 한다.
이 절에서 꼭 기억할 것
- 유한 집합(finite set)
- 순서쌍과 대칭 관계의 차이
- 큐와 스택
개념 4 · 성립 조건·불변식·경계 사례
BFS 큐는 감소하지 않는 거리(dist) 순서로 정점을 처리한다. DFS의 회색(GRAY) 정점은 재귀 스택에 있으며, 역방향 간선(back edge)은 방향 사이클의 존재를 뜻한다. 무방향 DFS에서는 강의 규약에 따라 트리 간선과 역방향 간선만 남는다.
유한 그래프에는 무한한 간선 집합이 있을 수 없다. \(E = V\)E = V × V는 완전 관계를 뜻한다. BFS의 최단 경로는 가중 최단 경로가 아니다. 사이클이 있는 방향 그래프에는 위상 순서가 없지만, 올바른 알고리즘은 그래도 종료하거나 실패를 보고한다.
이 절에서 꼭 기억할 것
- 전제조건을 생략하지 않는다.
- 존재 명제와 모든 경우 명제를 구분한다.
- 강한 단어는 작은 반례로 우선 검사한다.
개념 5 · 실행시간과 비용을 읽는 법
인접 행렬은 \(\Theta(|V|^2)\)Θ(|V|²) 공간을 사용하고 인접 리스트는 \(\Theta(|V|+|E|)\)Θ(|V|+|E|) 공간을 사용한다. 인접 리스트에서 BFS, DFS, DFS 기반 위상 정렬, Kosaraju는 \(O(|V|+|E|)\)O(|V|+|E|)에 실행된다.
O는 upper bound이고 Θ는 tight bound입니다. 자료구조 연산 비용은 ADT 이름만이 아니라 구현과 유지하는 보조 정보에 따라 달라질 수 있습니다.
이 절에서 꼭 기억할 것
- O와 Θ를 같은 뜻으로 읽지 않는다.
- 구현 의존성을 확인한다.
- 필요 없는 runtime 주장도 억지로 만들지 않는다.
개념 6 · 정확히 두 개 선택(exactly two) 판정법
선택지를 서로 비교해 '가장 그럴듯한 두 개'를 고르지 않습니다. A부터 D까지 각각 독립적인 참·거짓 명제로 바꾸고 근거 또는 반례를 붙인 뒤 참의 개수를 셉니다.
현재 복기 데이터에서 판정된 정답 표시는 A, C입니다. 정답 수와 섹션 규칙이 충돌하는 문항은 억지로 두 개를 만들지 않고 복기 문언 누락 가능성을 명시합니다.
수식으로 정확히 쓰기
핵심 규칙선택 규칙: 정확히 두 개 선택\((\text{exactly}_{\text{two}})\)(exactly(two))
핵심 규칙검증된 선택지: A, C
이 절에서 꼭 기억할 것
- BFS의 핵심은 큐·레벨·최소 간선 수이고, DFS의 핵심은 스택·방문 구간·간선 분류입니다.
- 비가중(unweighted), 큐(Queue), 무방향(ungerichtet), 항상(stets)을 표시하세요. 이 단어들이 선택지 판정을 결정합니다.
1. 시험장에서 따라 할 풀이 순서
선택 규칙 = 정확히 두 개 선택\((\text{exactly}_{\text{two}})\)(exactly(two))
BFS와 DFS의 역할·자료구조·간선 분류
BFS는 unweighted graph에서 edge 수 기준 shortest path를 찾는다. | DFS frontier는 recursion stack/stack으로 관리하며 queue가 필수라는 말은 거짓이다. | undirected DFS edge는 tree 또는 back edge다.
선택지 \(A =\)A =참
선택 규칙을 먼저 적는다
이 문항의 규칙은 정확히 두 개 선택\((\text{exactly}_{\text{two}})\)
(exactly(two))입니다. 마지막에 참 개수를 반드시 재검산합니다.핵심 규칙선택 규칙 = 정확히 두 개 선택\((\text{exactly}_{\text{two}})\)
(exactly(two))문장을 쉬운 한국어로 다시 쓴다
BFS와 DFS에 관한 설명 중 정확히 두 개를 고르시오.
핵심 규칙BFS와 DFS의 역할·자료구조·간선 분류
핵심 도구를 종이에 꺼낸다
unweighted, queue, undirected, always라는 제한 단어를 먼저 동그라미 칩니다.
핵심 규칙BFS는 unweighted graph에서 edge 수 기준 shortest path를 찾는다. | DFS frontier는 recursion stack/stack으로 관리하며 queue가 필수라는 말은 거짓이다. | undirected DFS edge는 tree 또는 back edge다.
선택지 A를 독립 판정한다
너비 우선 탐색(BFS)은 큐(queue)를 사용해 레벨 순서로 방문하며, 도달 가능한 정점 v에 대해 v.dist는 s에서 v까지의 최소 간선 수와 같습니다.
\[선택지 A = 참\]선택지 A = 참선택지 B를 독립 판정한다
큐(queue)는 너비 우선 탐색(BFS)의 규율입니다. 깊이 우선 탐색(DFS)은 재귀 또는 스택으로 한 가지를 깊게 따라간 뒤 되돌아갑니다(backtrack).
\[선택지 B = 거짓\]선택지 B = 거짓선택지 C를 독립 판정한다
강의에서 명시적으로 증명한 명제입니다. 방향 그래프의 DFS와 달리 무방향 그래프에서는 순방향·교차 간선(forward/cross edge)이 별도 종류로 남지 않습니다.
\[선택지 C = 참\]선택지 C = 참선택지 D를 독립 판정한다
같은 출발점에서 전체 탐색하면 두 알고리즘 모두 도달 가능한 정점을 방문합니다. '항상(stets)'이라는 전칭 주장은 방문 정점 수가 같은 작은 예시 하나만으로도 깨집니다.
\[선택지 D = 거짓\]선택지 D = 거짓정답 수와 애매성을 재검산한다
참으로 판정된 선택지는 A, C입니다. 복기 섹션 규칙과 수가 다르면 원문 누락 가능성을 기록하고 거짓을 참으로 조작하지 않습니다.
\[검증된 정답 = A, C\]검증된 정답 = A, C
2. 이 문제를 실제로 끝까지 풀기
BFS는 물결처럼 거리 레벨별로 퍼지고 DFS는 한 길을 끝까지 파고듭니다. 이 그림에서 Queue와 Stack, shortest edge count와 discovery interval이 자연스럽게 나옵니다.
풀이를 시작할 때 다음 네 사실을 먼저 적습니다. (1) BFS는 unweighted graph에서 edge 수 기준 shortest path를 찾는다. (2) DFS frontier는 recursion stack/stack으로 관리하며 queue가 필수라는 말은 거짓이다. (3) undirected DFS edge는 tree 또는 back edge다. (4) 둘 다 reachability 전체를 탐색하면 같은 reachable vertices를 방문할 수 있다.
선택지 A는 참입니다. 너비 우선 탐색(BFS)은 큐(queue)를 사용해 레벨 순서로 방문하며, 도달 가능한 정점 v에 대해 v.dist는 s에서 v까지의 최소 간선 수와 같습니다.
선택지 B는 거짓입니다. 큐(queue)는 너비 우선 탐색(BFS)의 규율입니다. 깊이 우선 탐색(DFS)은 재귀 또는 스택으로 한 가지를 깊게 따라간 뒤 되돌아갑니다(backtrack). 가장 작은 확인 예는 이웃 a,b를 가진 s에서 FIFO 큐를 쓰면 더 깊이 내려가기 전에 거리 1인 두 정점을 모두 처리합니다.
선택지 C는 참입니다. 강의에서 명시적으로 증명한 명제입니다. 방향 그래프의 DFS와 달리 무방향 그래프에서는 순방향·교차 간선(forward/cross edge)이 별도 종류로 남지 않습니다.
선택지 D는 거짓입니다. 같은 출발점에서 전체 탐색하면 두 알고리즘 모두 도달 가능한 정점을 방문합니다. '항상(stets)'이라는 전칭 주장은 방문 정점 수가 같은 작은 예시 하나만으로도 깨집니다. 가장 작은 확인 예는 정점이 {s,a}인 연결 그래프에서는 BFS와 DFS 모두 s와 a를 방문합니다.
따라서 현재 문언에서 참으로 검증된 선택지는 A, C입니다. 선택지는 서로 상대평가하지 않고 각 문장을 정의·전제·반례로 독립 검증했습니다.
시험장에서 쓸 압축 절차는 다음과 같습니다. unweighted, queue, undirected, always라는 제한 단어를 먼저 동그라미 칩니다. 시간이 부족해도 '항상(always)', '오직(only)', '모든(every)' 같은 강한 단어와 전제조건, O와 Θ를 먼저 확인하면 대표 함정을 피할 수 있습니다.
3. 선택지 A–D를 한 줄도 건너뛰지 않고 판정하기
-
A참 — 정답 후보
너비 우선 탐색(BFS)은 큐(queue)를 사용해 레벨 순서로 방문하며, 도달 가능한 정점 v에 대해 v.dist는 s에서 v까지의 최소 간선 수와 같습니다.
빠른 확인법: BFS는 unweighted graph에서 shortest paths를 구하는 데 사용할 수 있다.
-
B거짓
큐(queue)는 너비 우선 탐색(BFS)의 규율입니다. 깊이 우선 탐색(DFS)은 재귀 또는 스택으로 한 가지를 깊게 따라간 뒤 되돌아갑니다(backtrack).
빠른 확인법: 이웃 a,b를 가진 s에서 FIFO 큐를 쓰면 더 깊이 내려가기 전에 거리 1인 두 정점을 모두 처리합니다.
-
C참 — 정답 후보
강의에서 명시적으로 증명한 명제입니다. 방향 그래프의 DFS와 달리 무방향 그래프에서는 순방향·교차 간선(forward/cross edge)이 별도 종류로 남지 않습니다.
빠른 확인법: 무방향 그래프 G에서 DFS로 생기는 간선 종류는 tree edge와 back edge뿐이다.
-
D거짓
같은 출발점에서 전체 탐색하면 두 알고리즘 모두 도달 가능한 정점을 방문합니다. '항상(stets)'이라는 전칭 주장은 방문 정점 수가 같은 작은 예시 하나만으로도 깨집니다.
빠른 확인법: 정점이 {s,a}인 연결 그래프에서는 BFS와 DFS 모두 s와 a를 방문합니다.
4. 초보자가 가장 자주 틀리는 이유
- BFS의 핵심은 큐·레벨·최소 간선 수이고, DFS의 핵심은 스택·방문 구간·간선 분류입니다.
- exactly-two라는 이유만으로 근거 없이 두 선택지를 맞다고 만든다.
- 선택지의 절반만 맞는데 결합 문장 전체를 참으로 판정한다.
- always, only, every 같은 강한 단어를 놓친다.
- 정의와 구현, 전제조건과 결론, upper bound와 tight bound를 섞는다.
- 작은 예 하나로 거짓은 깰 수 있지만 참인 보편 명제를 증명했다고 착각한다.
- 복기 시험지가 공식 원문·공식 답안이라는 전제로 애매성을 숨긴다.
- 용어를 암기한 소리만 따라가고 실제 상태나 한 단계 실행을 그리지 않는다.
5. 시험 답안 템플릿
unweighted, queue, undirected, always라는 제한 단어를 먼저 동그라미 칩니다. 각 선택지를 정의와 전제에 따라 독립 판정하면 참인 label은 A, C이다. 핵심 근거: BFS는 unweighted graph에서 edge 수 기준 shortest path를 찾는다. DFS frontier는 recursion stack/stack으로 관리하며 queue가 필수라는 말은 거짓이다. undirected DFS edge는 tree 또는 back edge다. 둘 다 reachability 전체를 탐색하면 같은 reachable vertices를 방문할 수 있다.
6. 스스로 이해했는지 확인
II-11의 주제를 한 문장으로 설명하면?
정답: BFS는 물결처럼 거리 레벨별로 퍼지고 DFS는 한 길을 끝까지 파고듭니다. 이 그림에서 Queue와 Stack, shortest edge count와 discovery interval이 자연스럽게 나옵니다.
이 문제에서 가장 먼저 꺼낼 판정법은?
정답: unweighted, queue, undirected, always라는 제한 단어를 먼저 동그라미 칩니다.
핵심 사실 네 가지 중 첫 번째는?
정답: BFS는 unweighted graph에서 edge 수 기준 shortest path를 찾는다.
핵심 사실 네 가지 중 두 번째는?
정답: DFS frontier는 recursion stack/stack으로 관리하며 queue가 필수라는 말은 거짓이다.
가장 위험한 함정은?
정답: BFS의 핵심은 큐·레벨·최소 간선 수이고, DFS의 핵심은 스택·방문 구간·간선 분류입니다.
정답 label은?
정답: A, C
방향 그래프(directed graph)와 무방향 그래프(undirected graph)의 E 조건을 각각 말하라.
정답: 방향 그래프는 E ⊆ V × V이고 대칭성이 필요 없다. 무방향 그래프는 E ⊆ V × V에 대칭성을 더한다.
BFS에서 흰색(WHITE), 회색(GRAY), 검은색(BLACK), dist, pred, Q의 의미를 말하라.
정답: WHITE는 미발견, GRAY는 발견되어 큐에 있음, BLACK은 처리 완료 상태다. dist는 간선 수 거리(edge-count distance), pred는 처음 발견시킨 이전 정점(predecessor), Q는 FIFO 큐다.
근거 자료
AuD Gedächtnisprotokoll SoSe 2025.md· Multiple Choice II-11
복기된 문언과 선택지; 공식 답안지가 아님AuD Gedächtnisprotokoll SoSe 2025.md· MC section II, questions 9-11
2025년 여름학기 복기 문구와 배점, 그리고 정확히 두 개 선택 규칙.Vorlesung\06GraphAlgorithms.pdf· pp. 3-6
유한 방향·무방향 그래프의 정의, E ⊆ V × V, 무방향 대칭성, 경로와 연결성.Vorlesung\06GraphAlgorithms__moodle_2026-06-16.pdf· pp. 3-6
Moodle 미러가 현재 강의의 동일한 그래프 정의 관례를 확인해 줍니다.Vorlesung\06GraphAlgorithms.pdf· pp. 9, 14
인접 행렬·인접 리스트 표현과 각각의 공간 비용.