ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • boj)1406 - 에디터
    PS/boj 2020. 9. 14. 01:31
    import java.io.*;
    import java.util.Stack;
    
    public class boj_1406 {
        public static void main(String[] args) throws IOException {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
            Stack<Character> left = new Stack<>();
            Stack<Character> right = new Stack<>();
    
            String first = br.readLine();
            int m = Integer.parseInt(br.readLine());
    
            for (int i = 0; i < first.length(); i++) {
                left.push(first.charAt(i));
            }
    
            for (int i = 0; i < m; i++) {
                String command = br.readLine();
    
                switch (command.charAt(0)) {
                    case 'L' :
                        if (!left.isEmpty()) {
                            right.push(left.pop());
                        }
                        break;
                    case 'D' :
                        if (!right.isEmpty()) {
                            left.push(right.pop());
                        }
                        break;
                    case 'B' :
                        if (!left.isEmpty()) {
                            left.pop();
                        }
                        break;
                    case 'P' :
                        left.push(command.charAt(2));
                }
            }
    
            while (!left.isEmpty()) {
                right.push(left.pop());
            }
    
            while (!right.isEmpty()) {
                bw.append(right.pop());
            }
    
            bw.flush();
            bw.close();
        }
    }
    

    - 해결해 볼만했던거 같은데 switch case에서 break 를 빼먹어서 계속 오류에 걸리고 포기함

    - 처음 접근은 스택 생각 못하고 StringBuilder 나 LinkedList 생각함

    - 문자열이고 N 이 너무 커서 시간복잡도 생각이 필요함

     

     

    - 커서를 기준으로 스택을 두개 나눈다고 생각하면 풀이가 쉬워진다

    - 출력할때는 왼쪽 스택을 전부 오른쪽 스택으로 옮겨담고 오른쪽 스택에서 전부 출력하면 순서대로 출력 가능

    'PS > boj' 카테고리의 다른 글

    boj)17413 - 단어 뒤집기 2  (0) 2020.09.14
    boj)1158 - 요세푸스 문제  (0) 2020.09.14
    boj)1874 - 스택 수열  (0) 2020.09.13
    boj)9012 - 괄호  (0) 2020.09.13
    boj)9093 - 단어 뒤집기  (0) 2020.09.13
킹수빈닷컴