Learning
토픽 35 / 66·그래프 자료구조

DFS (Depth-First Search)

DFS (Depth-First Search)

그래프의 한 정점에서 시작하여 가능한 깊이 끝까지 탐색한 후 백트래킹하는 그래프 순회 알고리즘으로, 스택 또는 재귀로 구현

목적: 그래프 순회, 경로 탐색, 사이클 검사, 위상 정렬, 연결 요소

특징: 깊이 우선, 스택/재귀, 백트래킹, 메모리 효율(경로 길이만큼)

동작

구현: 재귀(암묵적 스택) 또는 명시적 스택

시간 복잡도: O(V + E) - 인접 리스트, O(V²) - 인접 행렬

공간 복잡도: O(V) - 방문 배열 + O(h) - 스택(h = 깊이)

장점: 메모리 효율(경로만), 구현 간단(재귀), 백트래킹, 경로 저장

단점: 최단 경로 보장 안됨, 무한 루프 위험(사이클), 깊은 그래프에서 스택 오버플로우

적용사례

  • 경로 존재 확인
  • 사이클 검사
  • 위상 정렬
  • 강연결 요소(SCC)
  • 미로 탐색
  • 백트래킹 문제

비교: DFS(깊이/스택/메모리효율/경로) vs BFS(너비/큐/최단경로)

연관: 그래프, BFS, 백트래킹, 위상 정렬, 재귀