피드로 돌아가기
Word ladders the right way: BFS, bidirectional search, and why Dijkstra is overkill
Dev.toDev.to
Backend

Wildcard Bucket 인덱싱으로 $O(N^2)$ 전처리를 $O(N \cdot L)$로 최적화

Word ladders the right way: BFS, bidirectional search, and why Dijkstra is overkill

Dean Gilley2026년 4월 23일4intermediate

Context

단어 간 Hamming distance 기반의 Graph Traversal 구현 시 발생하는 비효율적 전처리 구조 분석. 전체 사전의 모든 단어를 전수 비교하는 Naive approach로 인한 $O(N^2 \cdot L)$ 시간 복잡도의 한계점 노출.

Technical Solution

  • Wildcard Bucket Index 도입을 통한 인접 노드 탐색 최적화
  • 단어의 각 자리를 와일드카드로 치환한 Pattern Key 기반 Hash Map 설계
  • $O(L)$ 시간 복잡도로 Neighbor를 추출하는 효율적 인덱싱 구조 채택
  • Unweighted Graph 특성을 고려하여 Dijkstra 대신 단순 BFS를 통한 최단 경로 탐색
  • Start와 Target 양방향에서 동시 탐색하는 Bidirectional BFS 적용으로 Search Space 축소
  • 메모리 효율성을 위해 명시적 Adjacency List 대신 인덱스 기반 런타임 생성 방식 활용

- Edge Weight가 동일한 최단 경로 문제에서 Dijkstra 대신 BFS 적용 여부 검토 - 대규모 데이터셋의 전수 비교 필요 시 Pattern 기반 Indexing 도입 고려 - 탐색 범위가 기하급수적으로 증가하는 구조에서 Bidirectional Search 적용 가능성 확인

원문 읽기