티스토리 뷰

PS

[백준] 16120번 PPAP [JAVA]

Eastplanet 2024. 1. 17. 11:03

문제 출처: https://www.acmicpc.net/problem/16120

 

16120번: PPAP

첫 번째 줄에 문자열이 주어진다. 문자열은 대문자 알파벳 P와 A로만 이루어져 있으며, 문자열의 길이는 1 이상 1,000,000 이하이다.

www.acmicpc.net

 

package ps;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Stack;

public class BOJ_16120 {

public static void main(String[] args) throws Exception  {
		
		//System.setIn(new FileInputStream("1204_input.txt"));
	
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        
       
        String word = in.readLine();
        
        Stack<Character> S = new Stack<>();
        
        for(int i=word.length()-1;i>=0;i--) {
        	S.push(word.charAt(i));
        }
        
        
        Stack<Character> buff = new Stack<Character>();
        boolean flag = false;
        
        while(true) {
        	
        	if(S.size()!=0) {
    			buff.push(S.pop());
    		}
        	else {
        		if(buff.size()==1) {
        			if(buff.pop()=='P') {
        				flag = true;
        				break;
        			}
        			else {
        				flag = false;
        				break;
        			}
        		}
        		else {
        			flag = false;
        			break;
        		}
        	}
        	
        	if(buff.size()<4)continue;
        	
        	
        	char[] arr = new char[4];
        	
        	for(int i=3;i>=0;i--) {
        		arr[i] = buff.pop();
        	}
        	
        	if(arr[0] == 'P' && arr[1] == 'P' && arr[2] == 'A' && arr[3] == 'P') {
        		S.push('P');
        	}
        	else {
        		for(int i=0;i<4;i++) {
        			buff.push(arr[i]);
        		}
        	}
        	
        	
        	
        	
        	
        	
        }
        
        if(flag == true)System.out.println("PPAP");
        else System.out.println("NP");
        
        
        
	}
}

 

'PS' 카테고리의 다른 글

[BOJ] 9252번 LCS 2 JAVA  (0) 2024.01.22
[백준] 3986번 좋은 단어 [JAVA]  (0) 2024.01.17
[SWEA] 1213 String  (1) 2024.01.11
[SWEA] 1204 최빈수 구하기  (0) 2024.01.11
[백준] 12026번 BO 거리 C++  (0) 2023.01.22
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함