[알고리즘] KMP 알고리즘 - 빠른 문자열 찾기 (C++로 구현하기)
2021. 3. 21. 22:33
Programming/알고리즘
KMP 알고리즘이란? 'Knuth-Morris-Pratt' 의 줄임말입니다. 이 알고리즘을 설계한 사람들입니다. 전체 문자열에서, 특정 문자열(패턴)을 빠르게 찾는 알고리즘입니다. 이와 비슷하게 문자열을 찾는 여러 알고리즘이 있습니다. 대략적으로 소개하자면 다음과 같습니다. - Naive Algorithm : 가장 쉽게 생각할 수 있는, O(N²)의 전체 탐색 알고리즘입니다. - Rabin & Karp Algorithm : 해시를 이용한 문자열 탐색 알고리즘입니다. - Boyer & Moore Algorithm : 일반적으로 가장 빠른 알고리즘입니다. - Suffix Tree / Array : 접미사 트리 / 배열이라고 불리는, 테이블을 이용한 알고리즘입니다. KMP 알고리즘 역시 이해하기 어렵습니다. ..