'll Hacker
BOJ 1543 문서검색 문제 본문
Contents
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
'Dev' 카테고리의 다른 글
EVI$ION 겨울방학 코테스터디 3주차 과제 (0) | 2025.01.18 |
---|---|
EVI$ION 겨울방학 코테스터디 2주차 과제 (0) | 2025.01.11 |
EVI$ION 겨울방학 코테스터디 1주차 과제 (5) | 2025.01.03 |
BOJ - 11399 ATM 문제 풀이 (0) | 2024.09.26 |
GitHub 사용법 (0) | 2024.09.20 |