[BOJ1543 C++] 문서 검색

holy_joon·2023년 2월 26일
0

BOJ

목록 보기
2/13

문제 링크

실버 4로 측정되어 있는 문제

처음엔 어떻게 해야하나 겁 좀 먹었는데

대학원 수업때 배운 prefix라던지 .. 뭐 별게 생각 다 났지만 아닌거 같아서

아~주 간단하고 무식하게 작성

그래도 얻어간 건 공백 포함 문자열 입력받기

getline(cin, <string>arr);

간단하게 문제 설명은

알고리즘 (이라 할 것도 없음)

document로 받은 긴 문자열을 처음부터 차례대로 탐색 (i = 0 ~ N)

만약 document[i] 와 word[0] 이 똑같다!

i+1 부터 i+word.size() 까지 (주어진 워드랑 뒤까지 똑같나 확인)

다 똑같았으면 중간 중복은 피하니까 i를 뒤에 맞은 인덱스까지 늘려놓기

비교해보니 안똑같았으면 그냥 빠져나와서 다시 i+1 부터 탐색 시작

뭐 이건 .. 쉬웠다

//
// Created by 신성준 on 2023/02/26.
//
#include <iostream>
using namespace std;

int main(){
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    string document;
    getline(cin, document);
    string word;
    getline(cin, word);
    int ans = 0;
    for(int i = 0; i < document.size(); i++){
        if(document[i] == word[0]){
            int correct = 1;
            int j;
            for(j = i+1; j < i+word.size(); j++){
                if(document[j] != word[j-i]){
                    correct = 0;
                    break;
                }
            }
            if(correct == 1){
                i = j-1;
                ans++;
            }
        }
    }
    cout << ans;
    return 0;
}
profile
Deep Learning Image Processing

0개의 댓글