본문 바로가기
Algorithm/Baekjoon

[백준] 16120: PPAP - JAVA

Baspo8 2024. 5. 18.

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");
    }

}

'Algorithm > Baekjoon' 카테고리의 다른 글

[백준] 13701: 중복 제거 - JAVA  (0) 2024.05.18
[백준] 2517: 달리기 - JAVA  (0) 2024.05.18
[백준] 24042: 횡단보도 - JAVA  (0) 2024.05.18
[백준] 5464: 주차장 - JAVA  (0) 2024.05.18
[백준] 1497: 기타콘서트 - JAVA  (0) 2024.05.18
[백준] 1062: 가르침 - JAVA  (0) 2024.05.18