백준 16120번: PPAP

최창효·2022년 7월 3일
0
post-thumbnail

문제 설명

접근법

  • 스택을 이용합니다.
  • 스택에 값을 넣을 때마다 가장 위 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;
		}

	}

}
profile
기록하고 정리하는 걸 좋아하는 개발자.

0개의 댓글