-
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