Dev
BOJ 1543 문서검색 문제
씨이오가 되자
2024. 9. 27. 02:31
728x90
문제 이해
아이디어
string 클래스를 사용
처음엔 search문자열을 찾으면 "0"으로 대체할려고 하거나 지울려고 하는데, out of range가 계속 나와서
find 반환값으로 자리에서 많이 벗어나면 그 반환값의 위치에서 문자열은 찾을 수 없게 되고 그러면 break되는 것을 생각하였다.
#include <iostream>
#include <string>
using namespace std;
int solution(string document, string search) {
int cnt = 0;
size_t i = 0;
while (true) {
// search 문자열을 찾으면 해당 위치 반환, 못 찾으면 npos 반환
i = document.find(search, i);
if (i == string::npos) {
// 더 이상 search 문자열을 찾을 수 없으면 종료
break;
}
cnt++;
// 중복되지 않게 search의 길이만큼 건너뜀
i += search.length();
}
return cnt;
}
int main()
{
string document, search;
int result;
//입력
//cin >> document >> search;
getline(cin,document);
getline(cin,search);
//연산
result = solution(document,search);
//출력
cout<<result;
return 0;
}
728x90