안녕하세요. 오늘은 문자열을 검색하는 알고리즘중에 하나인 브루트 포스법(brute force method)에 대해 알아보겠습니다
문자열검색이란 어떤 문자열이 있으면 그 안에 다른 문자열이 있는지 검사하는 방법을 뜻합니다
ADDABC라는 문자열이 있고 ABC를 검색해보면 검색 성공입니다.
ADDABC를 텍스트(TEXT) 라고 하고 ABC를 패턴(PATTERN)이라고 하겠습니다.
문자열 하나씩 옮기다보면 4번째 트라이에 ABC가 일치합니다
이처럼 브루투포스법은 비효율적이고 반복적입니다
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #include <stdio.h> int main(void) { char *ch = "ADDABC"; int i; for(i=0; i<4 ; i++) { if(*(ch+i) == 'A') { if(*(ch+i+1) == 'B') { if(*(ch+i+2) == 'C') { printf("일치"); break; } } } if(i==3) printf("불일치"); } } |
실행 : 일치
6번째줄 : ch는 텍스트입니다
11번째줄 : i<4인 이유는 4번만 반복하면 다 반복하는것 이기 때문입니다
9번째줄~21번째줄 : A,B,C가 있으면 일치입니다
23번째줄 : i == 3 일때, 11번째줄 if문을 지나서 23번째줄 if문에 왔다는거는 불일치라는 의미입니다
'기타지식들 > 알고리즘' 카테고리의 다른 글
알고리즘 순열 C언어로 구현하기 (0) | 2021.01.18 |
---|---|
두 숫자 바꾸는 방법,변수교환 방법 (0) | 2021.01.16 |
숫자 내림차순,오름차순 정렬하는 알고리즘 (0) | 2021.01.16 |
세 값의 최대값 구하기 알고리즘 (0) | 2020.07.12 |
알고리즘 선형검색(선형탐색)이란? (0) | 2020.06.14 |