🐣 알고리즘 삐약/💻 백준 삐약

35 삐약 : 백준 5397 | 키로거 [바킹독 문제 풀이|연결리스트|JAVA]

우주수첩 2023. 10. 19. 14:14
728x90

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

 

5397번: 키로거

첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한줄로 이루어져 있고, 강산이가 입력한 순서대로 길이가 L인 문자열이 주어진다. (1 ≤ L ≤ 1,000,000) 강산이가 백스페이스를 입

www.acmicpc.net

 

 

package BKD_0x3_LinkedList;

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

public class BOJ_5397 {
    public static void main(String[] args) throws IOException {
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int N = Integer.parseInt(bf.readLine());

        for(int i=0;i<N;i++){
            Stack<Character> leftStack = new Stack<>();
            Stack<Character> rightStack = new Stack<>();
            char[] input_str = bf.readLine().toCharArray();

            for(char c : input_str){
                switch (c){
                    case '<':
                        if(!leftStack.isEmpty()) rightStack.push(leftStack.pop());
                        break;
                    case '>':
                        if (!rightStack.isEmpty()) leftStack.push(rightStack.pop());
                        break;
                    case '-':
                        if(!leftStack.isEmpty()) leftStack.pop();
                        break;
                    default:
                        leftStack.push(c);
                        break;
                }
            }

            while (!leftStack.isEmpty() )rightStack.push(leftStack.pop());
            while (!rightStack.isEmpty()) bw.write(rightStack.pop());
            bw.write("\n");
        }

        bw.flush();
        bw.close();

    }
}

 

 

1406번 문제와 거의 유사하여 수월하게 문제를 해결할 수 있었다.

2023.10.19 - [🐣 알고리즘 삐약/💻 백준 삐약] - 34 삐약 : 백준 1406[바킹독 문제 풀이|연결리스트|JAVA]

 

 

 

 

 

 

728x90