그래프 모델링은 정점·간선 정의를 코드 구조로 번역하는 일이다.
| 문제 신호 | 결정 | 코드 모양 | 놓치면 생기는 버그 |
|---|---|---|---|
| “A에서 B로” | directed | adj[u].push(v) | 역방향 도달을 잘못 허용 |
| “친구 관계, 양방향” | undirected | adj[u].push(v); adj[v].push(u) | 연결 요소가 둘로 쪼개짐 |
| 비용/거리/시간 | weighted edge | { to, weight } | BFS처럼 비용을 1로 처리 |
| 간선 존재 질의 다수 | matrix or set | has[u][v] 또는 Set | 리스트 선형 탐색 반복 |
| 이웃 순회 중심 | adjacency list | for (const e of adj[u]) | 행렬 전체 스캔으로 시간 낭비 |