boj)1406 - 에디터
2020. 9. 14. 01:31ㆍPS/boj
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 |