반응형
시간복잡도 O(주어진문자열+명령어갯수)에서 더 줄일 수 없으므로,
시간초과문제 해결을 위해 Scanner사용에서 BufferedReader사용으로 변경함
package com.company;
import java.io.*;
import java.util.*;
public class BOJ1406 {
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
Stack<Character> left=new Stack<>();
Stack<Character> right=new Stack<>();
String input = br.readLine();
for(int i=0;i<input.length();i++){
left.push(input.charAt(i));
}
int m = Integer.parseInt(br.readLine());
while(m-->0){
String[] order=br.readLine().split(" ");
char what=order[0].charAt(0);
if(what=='L' && !left.empty()){
right.push(left.pop());
}
else if(what=='D' && !right.empty()){
left.push(right.pop());
}
else if(what=='B' && !left.empty()){
left.pop();
}
else if(what=='P'){
left.push(order[1].charAt(0));
}
}
while(!left.empty())
right.push(left.pop());
while(!right.empty())
sb.append(right.pop());
System.out.println(sb);
}
}
반응형
'Coding Test(Algorithms)' 카테고리의 다른 글
[JAVA] 자료구조 연습문제 - 백준 9012 (0) | 2021.06.26 |
---|---|
[JAVA] 자료구조 연습문제-백준 1874 (0) | 2021.06.25 |
[JAVA] 입출력 예제 - 백준 2558 (0) | 2021.06.15 |
[JAVA] 입출력 예제 - 백준 2557 (0) | 2021.06.15 |
[JAVA] 입출력 예제 - 백준 11022 (0) | 2021.06.15 |