Page 321 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 321
c 패턴을 다시 1칸 뒤로 옮깁니다. 'A', 'B', 0 1 2 3 4 5 6 7 8 9 10
c A B A B C D E F G H A
'C' 모두 일치합니다. A B C
패턴의 모든 문자가 일치하는 경우
[그림 8-10] 브루트-포스법
브루트-포스법은 선형 검색을 확장한 알고리즘이므로 단순법(單純法), 소박법(素朴法)이라고
도 합니다. 다음의 그림 8-11은 앞에서 살펴본 그림 8-10을 조금 더 자세히 나타낸 그림입
니다.
a 패턴이 텍스트의 첫 문자와 겹치도록 두 줄로 0 1 2 3 4 5 6 7 8 9 10
a 1 A B A B C D E F G H A
놓고 1번째 문자부터 순서대로 일치하는지 검사 A B C 1번째 문자는 일치합니다.
합니다. 1 , 2 처럼 문자가 일치하면 계속해서 패 0 1 2
턴과 텍스트의 문자를 검사합니다. 그러다가 3 처 0 ❶ 2 3 4 5 6 7 8 9 10
2 A B A B C D E F G H A
럼 다른 문자가 나타나면 검사를 중단합니다.
A B C 2번째 문자도 일치합니다.
0 ❶ 2
0 1 ❷ 3 4 5 6 7 8 9 10
3 A B A B C D E F G H A
A B C 3번째 문자는 다릅니다.
b 검사할 텍스트의 위치를 1칸 뒤로 이동합니다. 0 1 ❷
4 에서 볼 수 있듯이 1번째 문자부터 다릅니다. 검
사를 중단합니다. 0 ❶ 2 3 4 5 6 7 8 9 10
b 4 A B A B C D E F G H A
A B C 1번째 문자는 다릅니다.
0 1 2
c 조사할 텍스트의 위치를 1칸 뒤로 이동합니다.
5 , 6 , 7 에서 볼 수 있듯이 모든 문자가 일치합니 0 1 ❷ 3 4 5 6 7 8 9 10
c 5 A B A B C D E F G H A
다. 검색 성공입니다.
A B C 1번째 문자는 일치합니다.
0 1 2
0 1 2 ❸ 4 5 6 7 8 9 10
6 A B A B C D E F G H A
A B C 2번째 문자도 일치합니다.
0 ❶ 2
0 1 2 3 ❹ 5 6 7 8 9 10
7 A B A B C D E F G H A
A B C 3번째 문자도 일치합니다.
0 1 ❷
[그림 8-11] 브루트-포스법으로 검색하는 과정
08•문자열 검색 321