안녕하세요. 오늘은 연계를 할 거예요.

문제

https://www.acmicpc.net/problem/25497

아이디어

현재까지 나온 S와 L의 개수를 각각 저장해둡시다.
그리고 K와 R이 나왔을 때 S,L이 0이면 바로 종료를 합니다. 아니면 ++을 해주면 됩니다.
물론 숫자가 나오면 그냥 ++ 해주면 됩니다.

소스코드

#include <iostream>
#include <string>
#define ll long long
using namespace std;

int main(void)
{
    ios_base::sync_with_stdio(false); cin.tie(NULL);
    string s;
    ll len, i, S = 0, L = 0, cnt = 0;

    cin >> len >> s;
    for (i = 0; i < len; i++)
    {
        if ('0' <= s[i] && s[i] <= '9') cnt++;
        if (s[i] == 'S') S++;
        if (s[i] == 'L') L++;
        if (s[i] == 'K')
        {
            if (S)
            {
                S--;
                cnt++;
            }
            else break;
        }
        if (s[i] == 'R')
        {
            if (L)
            {
                L--;
                cnt++;
            }
            else break;
        }
    }
    cout << cnt;
}


감사합니다.

0개의 댓글