반응형
public class Q_1406 {
public static void main(String[] args) {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
Stack<String> leftStack = new Stack<>();
Stack<String> rightStack = new Stack<>();
StringBuilder result = new StringBuilder();
try {
String str = bufferedReader.readLine();
//초기 왼쪽 커서 값 설정
for (int i = 0; i < str.length(); i++) {
leftStack.push(str.substring(i, i+1));
}
String count = bufferedReader.readLine();
for (int j = 0; j < Integer.parseInt(count); j++) {
String inputLine = bufferedReader.readLine();
String[] inputArr = inputLine.split(" ");
String command = inputArr[0];
switch (command) {
case "L":
if(!leftStack.isEmpty()) {
String leftStackElement = leftStack.pop();
rightStack.push(leftStackElement);
}
break;
case "D":
if(!rightStack.isEmpty()) {
String rightStackElement = rightStack.pop();
leftStack.push(rightStackElement);
}
break;
case "B":
if (!leftStack.isEmpty()) {
leftStack.pop();
}
break;
case "P":
String element = inputArr[1];
leftStack.push(element);
break;
default:
System.out.println("해당 명령어는 사용할 수 없습니다.");
break;
}
}
while(!leftStack.isEmpty()) {
rightStack.push(leftStack.pop());
}
while(!rightStack.isEmpty()) {
result.append(rightStack.pop());
}
System.out.println(result);
} catch (IOException e) {
e.printStackTrace();
}
}
}
반응형
'Algorithm > 백준 문제풀이' 카테고리의 다른 글
백준 17413 - 단어 뒤집기2(자바 구현) (0) | 2021.11.15 |
---|---|
백준 1158 - 요세푸스 문제(자바 구현) (0) | 2021.10.19 |
백준 1874 - 스택 수열(자바 구현) (0) | 2021.09.17 |
백준 9012 - 괄호(자바 구현) (0) | 2021.09.10 |
백준 10828 - 스택(자바 구현) (0) | 2021.06.14 |