다음 C 코드에 해당하는 문자열 탐색 방법은? (단, s1은 입력 문자열, s2는 s1에서 찾고자 하는 패턴 문자열이고, n1은 s1의 길이, n2는 s2의 길이를 나타낸다)
int match(char *s1, char *s2) {
int pt = 0, p = 0;
while(pt != n1 && p != n2) {
if (s1[pt] == s2[p]) {
pt++;
p++;
} else {
pt = pt - p + 1;
p = 0;
}
}
if (p == n2) return pt-p;
else return -1;
} - ①브루트-포스(brute-force) 알고리즘
- ②라빈-카프(Rabin-Karp) 알고리즘
- ③오토마타를 이용한 매칭 알고리즘
- ④보이어-무어(Boyer-Moore) 알고리즘
선지를 골라 바로 채점해 보세요.
정답 ①
출처: 인사혁신처 공개 기출(공공데이터포털, 이용허락 제한 없음)