본문 바로가기
Algorithm/📖Baekjoon

#1543 문서 검색

by yewoneeee 2022. 6. 30.

# 문제

# 입력 및 출력

# 풀이

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

댓글