Ch.7 그래프
챕터7 종합퀴즈 — 그래프 완전 정복
그래프 챕터 총정리 시간
그래프의 기초부터 면접 실전까지 달려왔습니다. 이제 배운 모든 것을 종합 퀴즈로 점검합니다.
DFS? BFS? 위상정렬? Union-Find? 어떤 상황에 뭘 써야 하지?
문제의 키워드를 보고 자동으로 알고리즘을 선택할 수 있다면, 그래프 마스터입니다.
핵심 내용
무방향 그래프에서 노드 A와 B를 연결할 때, 인접 리스트에 추가해야 하는 횟수는?
노드 V개, 엣지 E개인 그래프에서 인접 리스트의 공간 복잡도는?
가중치가 없는 그래프에서 A에서 B까지 최단 거리를 구하려면?
DFS를 반복문으로 구현할 때 사용하는 자료구조는?
BFS에서 list.pop(0) 대신 deque.popleft()를 쓰면 시간이 O(n)에서 O(1)로 개선된다
Kahn's Algorithm에서 사이클을 감지하는 방법은?
Union-Find에서 find(3) == find(7)이 True라면 이것이 의미하는 바는?
Union-Find에서 경로 압축 없이 최악의 경우 find의 시간 복잡도는 O(n)이다
Number of Islands에서 visited 대신 사용하는 트릭은?
"작업에 선행 조건이 있고, 모든 작업을 완료할 수 있는 순서를 구하라" 이 문제에 적합한 알고리즘은?
Clone Graph에서 해시맵(old_to_new)이 없으면 사이클이 있는 그래프에서 무한 루프에 빠진다
Pacific Atlantic Water Flow에서 역방향 탐색을 하는 이유는?
그래프 마스터 달성!
정리 노트
그래프 완전 정복
알고리즘 선택 가이드
- 경로/연결 요소
- → DFS (재귀 4줄 패턴)
- 최단거리/레벨
- → BFS (deque + popleft)
- 순서/의존 관계
- → 위상정렬 (Kahn's)
- 그룹 합치기/판별
- → Union-Find (경로 압축 + 랭크)
시간 복잡도
- DFS / BFS
- O(V + E)
- 위상정렬
- O(V + E)
- Union-Find
- O(α(n)) ≈ O(1) per operation
면접 필수 4문제
- Number of Islands
- 2D DFS + 원본 수정 트릭
- Clone Graph
- 해시맵 DFS + visited 겸용
- Course Schedule
- 위상정렬 + 사이클 감지
- Pacific Atlantic
- 역방향 DFS + 교집합
그래프 = DFS/BFS가 기본 무기. 키워드로 알고리즘 자동 선택을 연습하세요!
핵심 정리
- 1그래프 = 노드 + 엣지, 인접 리스트가 기본 표현
- 2DFS(스택/재귀) + BFS(큐) = 탐색의 양대 무기
- 3위상정렬: 순서 문제 + 사이클 감지
- 4Union-Find: 그룹 합치기/판별을 거의 O(1)로
- 5면접 필수 4문제를 패턴으로 암기
퀴즈와 인터랙션으로 더 깊이 학습하세요
play_circle인터랙티브 레슨 시작