문제
문제해결
import java.io.*;
import java.util.Stack;
public class B1406 {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String str = reader.readLine();
int n = Integer.parseInt(reader.readLine());
Stack<String> left = new Stack<>();
Stack<String> right = new Stack<>();
String[] arr = str.split("");
for (String s : arr) {
left.push(s);
}
for (int i = 0; i < n; i++) {
String command = reader.readLine();
char c1 = command.charAt(0);
switch (c1){
case 'L':
if (!left.empty()) right.push(left.pop());
break;
case 'D':
if (!right.empty()) left.push(right.pop());
break;
case 'B':
if (!left.empty()) left.pop();
break;
case 'P':
char c2 = command.charAt(2);
left.push(String.valueOf(c2));
break;
}
}
int size = right.size();
for (int i = 0; i < size; i++) {
left.push(right.pop());
}
for (String c : left) {
bw.write(c);
}
bw.flush();
bw.close();
}
}
- left, right 스텍을 만들어서 커서 왼쪽에 있으면 left 스텍에, 커서 오른쪽에 있으면 right 스텍에 담는 식으로 구현하였다
- 명령어에 맞게 이동, 삭제 등을 처리하면 된다
- 처음에는 scanner, sout으로 구현하였으나 시간 초과 나서 BufferedReader, BufferedWriter로 바꾸니 시간 초과가 해결되었다
'[알고리즘] > 백준' 카테고리의 다른 글
백준 1158 자바 - 요세푸스 문제 (0) | 2021.06.17 |
---|---|
백준 10845 자바 - 큐 (0) | 2021.06.16 |
백준 1874 자바 - 스택 수열 (0) | 2021.06.14 |
백준 9012 자바 - 괄호 (0) | 2021.06.13 |
백준 10828 자바 - 스택 (0) | 2021.06.12 |