에디터1406

LJM·2023년 9월 13일
0

백준풀기

목록 보기
230/259

https://www.acmicpc.net/problem/1406

스택 2개를 사용해서 풀어야 하는 문제

찾아보고 풀었다..

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

public class Main {

    public static void main(String[] args) throws IOException{

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        Stack<Character> leftStack = new Stack<>();
        Stack<Character> rightStack = new Stack<>();
        String input = br.readLine();

        for (int i = 0; i < input.length(); i++) {
            leftStack.add(input.charAt(i));
        }

        int M = Integer.parseInt(br.readLine());

        StringTokenizer st = null;

        for (int i = 0; i < M; i++) {

            st = new StringTokenizer(br.readLine(), " ");

            String firstcm = st.nextToken();

            if(firstcm.equals("P")) {
                String text = st.nextToken();
                leftStack.push(text.charAt(0));
            }
            else if(firstcm.equals("L")){
                if (!leftStack.isEmpty()) {
                    rightStack.push(leftStack.pop());
                }
            }
            else if(firstcm.equals("D")){
                if (!rightStack.isEmpty()) {
                    leftStack.push(rightStack.pop());
                }
            }
            else if(firstcm.equals("B")){
                if (!leftStack.isEmpty()) {
                    leftStack.pop();
                }
            }
        }

        while (!leftStack.isEmpty()) {
            rightStack.push(leftStack.pop());
        }

        StringBuilder sb = new StringBuilder();
        while (!rightStack.isEmpty()) {
            sb.append(rightStack.pop());
        }

        System.out.println(sb.toString());
    }
}
profile
게임개발자 백엔드개발자

0개의 댓글

Powered by GraphCDN, the GraphQL CDN