보이어무어1 알고리즘 - KMP 문자열 매칭 문자열 매칭 (KMP, 실패 함수, 라빈-카프)긴 문서 안에서 특정 단어를 찾는 일은 검색 엔진, 코드 에디터의 Ctrl+F, 유전자 서열 분석, 침입 탐지 시스템의 패턴 매칭까지 컴퓨터가 가장 자주 하는 작업 중 하나다. 가장 단순한 방법은 텍스트의 모든 위치에서 패턴을 한 글자씩 맞춰 보는 브루트포스이지만, 최악의 경우 O(N×M)으로 느려진다. 1977년 발표된 KMP(Knuth-Morris-Pratt) 알고리즘은 이 비교를 O(N+M)의 선형 시간으로 끌어내린 최초의 알고리즘이며, 그 비결은 "이미 비교해서 알아낸 정보를 버리지 않는다"는 한 문장에 있다. 본 글은 브루트포스의 비효율, KMP의 실패 함수, 그리고 해시 기반 라빈-카프와의 비교를 세심하게 정리한다(출처: 위키백과 — Knuth–M.. 2026. 5. 23. 이전 1 다음