[백준] 16120: PPAP - JAVA
https://www.acmicpc.net/problem/16120
풀이
문자열을 앞에서부터 보면서 ‘PPAP’가 되면 ‘P’로 바꿔준다.
최종적으로 ‘P’가 되면 성공.
P가 들어오면 cnt를 1 늘려준다.
A가 들어올 때 cnt가 2보다 작다면 PPAP를 만들수 없으므로 실패.
cnt가 2이상이고, 다음 글자가 P라면 PPAP를 만들 수 있으므로, cnt를 1 줄여준다(P가 2개 빠지고 새로운 P가 들어오기 때문).
메모리: 20080KB
시간: 260ms
언어: Java 11
코드
import java.io.*;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
boolean flag = true;
int pCnt = 0;
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if (ch == 'P') {
pCnt++;
} else {
if (pCnt >= 2 && i < str.length() - 1 && str.charAt(i + 1) == 'P') {
pCnt--;
i++;
} else {
flag = false;
break;
}
}
}
if (pCnt > 1) {
flag = false;
}
System.out.println(flag ? "PPAP" : "NP");
}
}