๐Ÿ’ป

[๋ฐฑ์ค€] ๊ทธ๋ฆฌ๋””์•Œ๊ณ ๋ฆฌ์ฆ˜ - 1543. ๋ฌธ์„œ๊ฒ€์ƒ‰ ๋ณธ๋ฌธ

์•Œ๊ณ ๋ฆฌ์ฆ˜/๋ฌธ์ œํ’€์ด Baekjoon

[๋ฐฑ์ค€] ๊ทธ๋ฆฌ๋””์•Œ๊ณ ๋ฆฌ์ฆ˜ - 1543. ๋ฌธ์„œ๊ฒ€์ƒ‰

๋˜ํšจ๋‹ˆ 2020. 2. 18. 17:28

๋ฌธ์ œ

์„ธ์ค€์ด๋Š” ์˜์–ด๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ์–ด๋–ค ๋ฌธ์„œ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค๋ ค๊ณ  ํ•œ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ์–ด๋–ค ๋‹จ์–ด๊ฐ€ ์ด ๋ช‡ ๋ฒˆ ๋“ฑ์žฅํ•˜๋Š”์ง€ ์„ธ๋ ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜, ์„ธ์ค€์ด์˜ ํ•จ์ˆ˜๋Š” ์ค‘๋ณต๋˜์–ด ์„ธ๋Š” ๊ฒƒ์€ ๋นผ๊ณ  ์„ธ์•ผ ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฌธ์„œ๊ฐ€ abababa์ด๊ณ , ๊ทธ๋ฆฌ๊ณ  ์ฐพ์œผ๋ ค๋Š” ababa๋ผ๋ฉด, ์„ธ์ค€์ด์˜ ์ด ํ•จ์ˆ˜๋Š” ์ด ๋‹จ์–ด๋ฅผ 0๋ฒˆ๋ถ€ํ„ฐ ์ฐพ์„ ์ˆ˜ ์žˆ๊ณ , 2๋ฒˆ๋ถ€ํ„ฐ๋„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋™์‹œ์— ์…€ ์ˆ˜๋Š” ์—†๋‹ค.

์„ธ์ค€์ด๋Š” ๋ฌธ์„œ์™€ ๊ฒ€์ƒ‰ํ•˜๋ ค๋Š” ๋‹จ์–ด๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ทธ ๋‹จ์–ด๊ฐ€ ์ตœ๋Œ€ ๋ช‡ ๋ฒˆ ์ค‘๋ณต๋˜์ง€ ์•Š๊ฒŒ ๋“ฑ์žฅํ•˜๋Š”์ง€ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ๋ฌธ์„œ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋ฌธ์„œ์˜ ๊ธธ์ด๋Š” ์ตœ๋Œ€ 2500์ด๋‹ค. ๋‘˜์งธ ์ค„์— ๊ฒ€์ƒ‰ํ•˜๊ณ  ์‹ถ์€ ๋‹จ์–ด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด ๊ธธ์ด๋Š” ์ตœ๋Œ€ 50์ด๋‹ค. ๋ฌธ์„œ์™€ ๋‹จ์–ด๋Š” ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž์™€ ๊ณต๋ฐฑ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

 

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ์ค‘๋ณต๋˜์ง€ ์•Š๊ฒŒ ์ตœ๋Œ€ ๋ช‡ ๋ฒˆ ๋“ฑ์žฅํ•˜๋Š”์ง€ ์ถœ๋ ฅํ•œ๋‹ค.

 

์˜ˆ์ œ ์ž…๋ ฅ1

ababababa
aba

 

์˜ˆ์ œ ์ถœ๋ ฅ1

2

 

์ƒ๊ฐ

์™œ ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ๋ถ„๋ฅ˜๋˜์–ด ์žˆ๋Š”์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์œผ๋‚˜ ๊ทธ๋ ‡๊ฒŒ ์–ด๋ ค์šด ๋ฌธ์ œ๋Š” ์•„๋‹ˆ์—ˆ๋‹ค. 

๋‹ค๋งŒ, ๋ฏธ์ฒ˜ ์ƒ๊ฐ์ง€๋„ ๋ชปํ•œ ์กฐ๊ฑด๋“ค์ด ๋ช‡๊ฐ€์ง€ ์žˆ์—ˆ๋‹ค. 

1. getline์œผ๋กœ ๋ฐ›์•„์ค˜์•ผ๋œ๋‹ค. ์ž…๋ ฅํ˜•์‹์—์„œ ๊ณต๋ฐฑ์ด ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์“ฐ์—ฌ์žˆ๋‹ค.

2. ๋‹จ์–ด๊ฐ€ ๋ฌธ์„œ๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ๋ฅผ ์ฒ˜๋ฆฌํ•ด์ฃผ์ง€ ์•Š์œผ๋ฉด ๋Ÿฐํƒ€์ž„์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. 

3. ๋‹จ์–ด๋ฅผ ์ฐพ์•„์„œ ์ฆ๊ฐ€์‹œํ‚ค๊ณ  ๋‚œ ํ›„ i ์ธ๋ฑ์Šค๋ฅผ ๋‹จ์–ด๋งŒํผ ์ฆ๊ฐ€์‹œ์ผœ์ค˜์•ผ๋˜๋Š”๋ฐ, i++๋˜๋Š” ๊ฒƒ์„ ๊ฐ์•ˆํ•ด์„œ -1 ์‹œ์ผœ์•ผํ•œ๋‹ค. 

 

์ž‘์„ฑํ•œ ์ฝ”๋“œ

#include <iostream>

using namespace std;
int cnt = 0;

int main(int argc, const char * argv[]) {
    // insert code here...
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    
    string d, w; //d:document w:word
    
    getline(cin, d); //๊ณต๋ฐฑ์ด ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ getline์œผ๋กœ ๋ฐ›์•„์ค˜์•ผํ•œ๋‹ค.
    getline(cin, w);
    
    if(d.length() < w.length()){ // ๋‹จ์–ด๊ฐ€ ๋ฌธ์„œ๋ณด๋‹ค ํด ๋•Œ๋Š” 0์ถœ๋ ฅ
        cout << 0 << "\n";
    }else{
        for(int i=0; i<=d.size()-w.size(); i++){
            bool check = true;
            
            for(int j=0; j<w.size(); j++){ //word๊ฐ€ ์žˆ๋Š”์ง€ ์ฒดํฌ
                //printf("%c %c : %d\n", d[i], w[j], cnt);
                if(d[i+j]!=w[j]){
                    check = false;
                    break;
                }
            }
            if(check){
                cnt ++;
                i += w.size()-1; // -1 ํ•ด์ค˜์•ผํ•œ๋‹ค!
            }
        }
        cout << cnt << "\n";
    }
}

๋ฐ˜์‘ํ˜•
Comments