Notice
Recent Posts
Recent Comments
Link
빙수달 게임 개발 노트
[알고리즘] 브루트-포스(Brute Force) 본문
#include <iostream>
using namespace std;
int BruteForce(const string &txt, const string &pat)
{
std::size_t pt = 0;
std::size_t pp = 0;
while (pt < txt.size() && pp < pat.size())
{
if (txt[pt] == pat[pp]) // 텍스트와 패턴이 일치한다면
{
pt++;
pp++;
}
else // 텍스트와 패턴이 일치하지 않는다면, 텍스트의 검색 시작부분 조정
{
pt = pt - pp + 1;
pp = 0;
}
}
if (pp == pat.size())
{
return pt - pp;
}
else
{
return -1;
}
}
int main(void)
{
string txt;
string pat;
cout << "브루탈 포스\n";
cout << "텍스트 : ";
cin >> txt;
cout << "패턴 : ";
cin >> pat;
int idx = BruteForce(txt, pat);
if (idx == -1)
{
"텍스트 내에 패턴이 없습니다";
}
else
{
cout << idx + 1 << "번 째에 패턴이 있습니다.";
}
return 0;
}

'Programming > 알고리즘' 카테고리의 다른 글
| [알고리즘] 큐(Queue) (0) | 2025.07.08 |
|---|---|
| [C++] 단일 링크드 리스트(Single Linked List)로 학생 관리 프로그램 만들기 (1) | 2025.01.08 |
| [알고리즘] 단순 삽입 정렬(Straight Insertion Sort) (0) | 2025.01.08 |
| [알고리즘] 단순 선택 정렬(Straight Selection Sort) (0) | 2025.01.08 |
| [알고리즘] Stack 구현하기 (1) | 2025.01.08 |