[7급 국가직 알고리즘 2024년 24번]

다음 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;	
}
알고리즘
  1. ①브루트-포스(brute-force) 알고리즘
  2. ②라빈-카프(Rabin-Karp) 알고리즘
  3. ③오토마타를 이용한 매칭 알고리즘
  4. ④보이어-무어(Boyer-Moore) 알고리즘

선지를 골라 바로 채점해 보세요.

정답 ①

출처: 인사혁신처 공개 기출(공공데이터포털, 이용허락 제한 없음)

신고가 접수됐습니다. 감사합니다.

오류 신고