# 문제
# 입력 및 출력
# 풀이
string의 find 함수를 사용해서 문자열을 찾는다
str.find("찾는 문자")를 통해 str에서 찾는 문자가 몇 번째 인덱스에 있는지를 리턴해준다
중복되지 않게 찾아야하기 때문에 str.find("찾는 문자", 찾기 시작할 위치)를 사용하고
찾기 시작할 위치를 (앞에서부터 조회해 처음 찾는 문자를 발견한 인덱스 + 찾는 문자 길이)로 설정해준다
#include <iostream>
#include <string>
using namespace std;
int main() {
string doc, word;
getline(cin, doc);
getline(cin, word);
int pos = word.size()*(-1), cnt = 0;
while (1) {
pos = doc.find(word, pos + word.size());
if (pos == string::npos) break;
cnt++;
}
cout << cnt;
}
처음엔 0부터 찾아야하기 때문에 pos를 -(word.size())로 설정해준다
찾는 문자가 문서에 없으면 종료
'Algorithm > 📖Baekjoon' 카테고리의 다른 글
#24479 알고리즘 수업 - 깊이 우선 탐색 1 (0) | 2022.07.17 |
---|---|
#1914 하노이 탑 (0) | 2022.07.11 |
#2193 이친수 (0) | 2022.06.29 |
#1966 프린터 큐 (0) | 2022.06.28 |
#11052 카드 구매하기 (0) | 2022.06.26 |
댓글