반응형
https://www.acmicpc.net/problem/1406
스택 두개를 선언을 해주고 커서가 왼쪽으로 움직이면 스택에 들어가 있는 문자를 오른쪽으로 옮겨주는 방식을 사용하여 문제 해결.
import java.io.*;
import java.util.*;
public class Main {
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<String> leftSt = new Stack<String>();
Stack<String> rightSt = new Stack<String>();
String[] str =br.readLine().split("");
for(String s : str) { //Enhanced For Loop 사용
leftSt.push(s);
}
int N = Integer.parseInt(br.readLine()); //명령어 개수
for(int i = 0; i < N; i++) {
String command = br.readLine();
char c = command.charAt(0);
switch(c) {
case 'L':
if(!leftSt.isEmpty())
rightSt.push(leftSt.pop());
break;
case 'D':
if(!rightSt.isEmpty())
leftSt.push(rightSt.pop());
break;
case 'B':
if(!leftSt.isEmpty()) {
leftSt.pop();
}
break;
case 'P':
char t = command.charAt(2);
leftSt.push(String.valueOf(t));
//leftSt.push(st.nextToken());
break;
default:
break;
}
}
while(!leftSt.isEmpty())
rightSt.push(leftSt.pop());
while(!rightSt.isEmpty())
bw.write(rightSt.pop());
bw.flush();
br.close();
bw.close();
}// main()
}// class Main
728x90
반응형
'코딩테스트 > 백준' 카테고리의 다른 글
백준 2667 : 단지번호붙이기 _자바 Java (0) | 2023.02.01 |
---|---|
백준 2178 : 미로 탐색 _자바 Java (0) | 2023.01.31 |
백준 2630 : 색종이 만들기 _자바 Java (0) | 2023.01.30 |
백준 11725 : 트리의 부모 찾기 _자바 Java (0) | 2023.01.29 |
백준 18870 : 좌표 압축 _자바 Java (0) | 2023.01.29 |
댓글