그리디 문제
sutstr
메서드 때문인건지 모르겠으나, 아니면 idx
를 0 으로 초기화하여 반복해서 메모리 초과가 난건지 모르겠다. (일단 substr
이 문제라고 생각하고 있다. idx
가 문제라면 시간초과를 불러올 것이다.)C++
에서 cout <<
시 삼항 연산자를 사용했더니 우선순위? 에러가 나더라. <<
을 시프트 연산자로 판단하고 난 에러인 듯 하여, 삼항 연산자에 괄호를 해주니 정상적으로 출력되었다.#include <iostream>
using namespace std;
string str;
void input() { cin >> str; }
bool is_idx_P(int idx) { return str[idx] == 'P'; }
bool solve() {
int p_cnt = 0;
for (int i = 0; i < str.size(); i++) {
if (is_idx_P(i))
p_cnt++;
else if (p_cnt >= 2 && i + 1 < str.size() && is_idx_P(i + 1)) {
p_cnt -= 2;
} else {
return false;
}
}
if (p_cnt == 1)
return true;
else
return false;
}
void output() { cout << (solve() ? "PPAP" : "NP"); }
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
input();
output();
return 0;
}