티스토리 뷰

카테고리 없음

2514 문자열찾기 (정올)

rectified 2024. 12. 24. 17:02

 

풀이과정 

문자열 문제라는건 문제만 봐도 아는 사실이고, 이를 찾기위해 처음에는 이런 형태로

if (s1.find(s2) != std::string::npos) {
    std::cout << "found!" << '\n';
}

npos를 써서 체크하려 했지만 npos는 정확히 매칭되는 거만 찾지 문제에 나와있듯에 KOIOI에서 KOI가 한번 IOI가 한번 나와줘야 정상인데 npos를 쓴다면 KOI가 한번밖에 나오지 않음.

 

따라서 substring을 3글자씩 떼준다음 시작인덱스를 하나씩 늘려가는 방법으로 풀어내야함. 

 

코드

#include <iostream>
using namespace std;

int main(){

    string s;
    cin >> s;
    string ioi = "IOI";
    int icount = 0;
    string koi = "KOI";
    int kcount = 0;

    for (int i = 0; i < s.size(); i++){
        string sub = s.substr(i, 3);
        if (sub == ioi){
            icount++;
        }else if (sub == koi){
            kcount++;
        }    
    }
    
    cout << kcount << '\n' << icount;

}

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함