반응형

 

<코드>

#include<iostream>
#include<algorithm>
#include<string>
#include<vector>
using namespace std;

int N, M, cnt, ans;
string S, P = "I";
vector<int> v;

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    cin >> N;
    cin >> M;
    cin >> S;

    for (int i = 0; i < N; i++)
        P += "OI";
    
    for (int i = 0; i < M - 2; i++)
    {
        if (S[i] == 'I' && S[i + 1] == 'O' && S[i + 2] == 'I')
        {
            cnt++;
            i += 1;
        }
        else
        {
            if(cnt != 0) v.push_back(cnt);
            cnt = 0;
        }
    }
    if (cnt != 0) v.push_back(cnt);
    
    for (int i = 0; i < v.size(); i++)
        if (N <= v[i]) ans += v[i] - N + 1;
    

    cout << ans << '\n';
}

 

 

www.acmicpc.net/problem/5525

 

5525번: IOIOI

첫째 줄에 N이 주어진다. 둘째 줄에는 S의 길이 M이 주어지며, 셋째 줄에 S가 주어진다. (1 ≤ N ≤ 1,000,000, 2N+1 ≤ M ≤ 1,000,000)

www.acmicpc.net

 

반응형

+ Recent posts