모두CBT

KMP(Knuth-Morris-Pratt) 알고리즘에 대한 설명으로 옳… | [7급 국가직 알고리즘] 23년 1회차 기출문제 상세 페이지

1[7급 국가직 알고리즘] 23년 1회차
KMP(Knuth-Morris-Pratt) 알고리즘에 대한 설명으로 옳지 않은 것은? (단, 패턴 문자열의 길이는 mm, 대상 문자열의 길이는 nn, m≤nm \le n이다)
1
알고리즘의 전처리(preprocessing) 과정을 포함한 시간 복잡도는 O(mn)O(mn)이다.
2
대상 문자열과 패턴 문자열의 문자들을 각각 비교하며 문자열 매칭 여부를 판단한다.
3
매칭이 실패할 경우 미리 생성된 위치 정보를 이용하여 비교를 다시 시작한다.
4
대상 문자열과 패턴 문자열에서 일치하는 부분 문자열을 이용하여 비교 횟수를 감소시킨다.
해설

KMP는 전처리를 포함해 O(m+n)O(m+n)이므로 O(mn)O(mn)이라는 설명이 옳지 않다.

패턴의 실패 함수(접두사·접미사 일치 정보)를 O(m)O(m)에 미리 만들고, 대상 문자열은 비교 위치를 되돌리지 않고 O(n)O(n)에 한 번 훑는다. O(mn)O(mn)은 단순 매칭의 최악 복잡도다.

  • 대상과 패턴의 문자를 하나씩 비교하며 매칭 여부를 판단하는 것은 KMP의 기본 동작이다.
  • 매칭 실패 시 미리 만든 실패 함수 값을 이용해 패턴의 비교 재시작 위치를 정한다.
  • 이미 일치한 접두사 정보를 재활용해 불필요한 비교를 건너뛰므로 비교 횟수가 줄어든다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[7급 국가직 알고리즘] 23년 1회차 25문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요7급 국가직 알고리즘 기출문제 암기장 전체 보기