K로 끝난 개구리, P로 끝난 개구리가 몇마리인지 기록한다. K로 끝난 개구리가 있는데 P가 입력되면, k--, p++를 하고(합쳐지니까), K로 끝난 개구리 없이 그냥 P가 입력되면 p++만 한다.
그중 가장 최대였던 k 혹은 p의 값이 정답이다.
#include <bits/stdc++.h>
using namespace std;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
string s;
cin >> s;
int k = 0, p = 0; // 마지막에 k, p로 끝난 개구리 몇마리?
int ans = 1;
if (s[0] == 'K') k++;
else p++;
for (int i = 1; i < s.size(); i++) {
if (s[i] == 'K') {
k++;
if (p) p--;
}
else {
p++;
if (k) k--;
}
ans = max(ans, max(k, p));
// cout << k << ' ' << p << ' ' << ans << '\n';
}
cout << ans;
return 0;
}
이런 쉬운 문제도 한참 걸린다니.. 어디가서 백준 플레티넘이라고 하면 돌맞을듯. 실버인척 해야겠다.