From 38dc2f1f784f5ef43037682a53458c66aaf816f9 Mon Sep 17 00:00:00 2001 From: leetag1163 Date: Thu, 26 Oct 2023 15:14:32 +0900 Subject: [PATCH] [solved] boj16120 --- LeeTaeHo/boj/boj16120.java | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 LeeTaeHo/boj/boj16120.java diff --git a/LeeTaeHo/boj/boj16120.java b/LeeTaeHo/boj/boj16120.java new file mode 100644 index 00000000..529a5ff6 --- /dev/null +++ b/LeeTaeHo/boj/boj16120.java @@ -0,0 +1,37 @@ +import java.io.*; +import java.util.*; + +public class boj16120 { + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + char[] ppap = br.readLine().toCharArray(); + if (isPPAP(ppap)) { + System.out.println("PPAP"); + } else { + System.out.println("NP"); + } + } + + static boolean isPPAP(char[] ppap) { + if (ppap.length < 4) { + return ppap.length == 1 && ppap[0] == 'P'; + } + + Stack s = new Stack<>(); + + for (int i = 0; i < 3; i++) { + s.push(ppap[i]); + } + + for (int i = 3; i < ppap.length; i++) { + if (s.size() >= 3 && ppap[i] == 'P' && s.elementAt(s.size() - 1) == 'A' && s.elementAt(s.size() - 2) == 'P' && s.elementAt(s.size() - 3) == 'P') { + for (int j = 0; j < 3; j++) { + s.pop(); + } + } + s.push(ppap[i]); + } + + return s.size() == 1 && s.peek() == 'P'; + } +} \ No newline at end of file