본문 바로가기

PROGRAMMING/ALGORITHM

[백준] 1406번 JAVA

import java.io.*;
import java.util.Stack;

public class Main {
    public static void main(String args[]) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));
        Stack<Character> orgStack = new Stack<>();
        Stack<Character> editStack = new Stack<>();
        StringBuilder sb = new StringBuilder();

        //문자열과 커맨드 수를 입력받는다
        String orgString = reader.readLine();
        int nb = Integer.parseInt(reader.readLine());
        //문자를 하나씩 stack에 담는다
        for(int i=0; i<orgString.length(); i++) {
            orgStack.push(orgString.charAt(i));
        }
        for(int i=0; i<nb ; i++) {
            String cmd = reader.readLine();

            //맨 앞일 경우 skip
            if(!orgStack.isEmpty()) {
                //L COMMAND
                if(cmd.equals("L")) {
                    editStack.push(orgStack.peek());
                    orgStack.pop();
                }
                //B COMMAND
                if(cmd.equals("B")) {
                    orgStack.pop();
                }
            }
            //맨 뒤일 경우 skip
            if(!editStack.isEmpty()) {
                //D COMMAND
                if(cmd.equals("D")) {
                    orgStack.push(editStack.peek());
                    editStack.pop();
                }
            }
            //P * COMMAND
            if(cmd.startsWith("P")) {
                Character addChar = cmd.charAt(cmd.length()-1);
                orgStack.push(addChar);
            }
        }
        while(!orgStack.isEmpty()) {
            editStack.push(orgStack.peek());
            orgStack.pop();
        }
        while(!editStack.isEmpty()) {
            sb.append(editStack.peek());
            editStack.pop();
        }
        writer.write(sb.toString());
        reader.close();
        writer.flush();
        writer.close();
    }
}

'PROGRAMMING > ALGORITHM' 카테고리의 다른 글

[백준] 17413번 JAVA  (0) 2021.04.01
[백준] 1158번 JAVA 요세푸스  (0) 2021.03.31
[백준] 9012번 JAVA  (0) 2021.03.29
[백준] 9093번 Python  (0) 2021.03.28
[백준] 9093번 JAVA  (0) 2021.03.28