문제 설명
접근법
- 스택을 이용합니다.
- 스택에 값을 넣을 때마다 가장 위 4개의 값이
PPAP
가 되는지 확인합니다.
- 가장 위 4개의 값이
PPAP
가 된다면 해당 값들을 빼고 P
를 넣습니다.
정답
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
LinkedList<Character> deq = new LinkedList<Character>();
for (int i = 0; i < s.length(); i++) {
char now = s.charAt(i);
deq.add(now);
Validate_Check(deq.size(), deq);
}
if (deq.size() == 1 && deq.get(0) == 'P') {
System.out.println("PPAP");
} else {
System.out.println("NP");
}
}
public static void Validate_Check(int i, LinkedList<Character> deq) {
if (i < 4) {
return;
}
if (deq.get(i - 4) == 'P' && deq.get(i - 3) == 'P' && deq.get(i - 2) == 'A' && deq.get(i - 1) == 'P') {
deq.poll();
deq.poll();
deq.poll();
deq.poll();
deq.add('P');
return;
}
}
}