16120 : PPAP

풀이

일반적인 괄호 문자열 문제랑 비슷하게 해결하면 된다.

코드

#include <cstdio>

int t;
char a[1000003], s[1000003];

int ppap() {
    if (t < 4) return 0;
    if (s[t-4]=='P'&&s[t-3]=='P'&&s[t-2]=='A'&&s[t-1]=='P') return 1;
    return 0;
}

int main() {
    scanf("%s", a);
    int cnt = 0;
    for (int i = 0; a[i]; i++) {
        s[t++] = a[i];
        while (ppap()) t -= 4, s[t++] = 'P';
    }
    puts(t == 1 && s[0] == 'P' ? "PPAP" : "NP");
    return 0;
}

아무말

백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이

wookje.kwon's profile image

wookje.kwon

2018-09-14 18:09

Read more posts by this author