728x90
๐๋ฌธ์ ๋งํฌ
1406๋ฒ: ์๋ํฐ
์ฒซ์งธ ์ค์๋ ์ด๊ธฐ์ ํธ์ง๊ธฐ์ ์ ๋ ฅ๋์ด ์๋ ๋ฌธ์์ด์ด ์ฃผ์ด์ง๋ค. ์ด ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ N์ด๊ณ , ์์ด ์๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ, ๊ธธ์ด๋ 100,000์ ๋์ง ์๋๋ค. ๋์งธ ์ค์๋ ์ ๋ ฅํ ๋ช ๋ น์ด์ ๊ฐ์
www.acmicpc.net
๐ป์ฝ๋
import java.io.*;
import java.util.LinkedList;
import java.util.List;
import java.util.Stack;
import java.util.StringTokenizer;
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<Character> leftStack = new Stack<>();
Stack<Character> rightStack = new Stack<>();
String input = br.readLine();
for (int i = 0; i < input.length(); i++) {
leftStack.add(input.charAt(i));
}
int M = Integer.parseInt(br.readLine());
for (int i = 0; i < M; i++) {
String orderLine = br.readLine();
char order = orderLine.charAt(0);
if (order == 'L') {// ์ปค์๋ฅผ ์ผ์ชฝ์ผ๋ก ํ ์นธ ์ฎ๊น (์ปค์๊ฐ ๋ฌธ์ฅ์ ๋งจ ์์ด๋ฉด ๋ฌด์๋จ)
if(!leftStack.isEmpty()) rightStack.push(leftStack.pop());
} else if (order == 'D') {// ์ปค์๋ฅผ ์ค๋ฅธ์ชฝ์ผ๋ก ํ ์นธ ์ฎ๊น (์ปค์๊ฐ ๋ฌธ์ฅ์ ๋งจ ๋ค์ด๋ฉด ๋ฌด์๋จ)
if(!rightStack.isEmpty()) leftStack.push(rightStack.pop());
} else if (order == 'B') {// ์ปค์ ์ผ์ชฝ์ ์๋ ๋ฌธ์๋ฅผ ์ญ์ ํจ (์ปค์๊ฐ ๋ฌธ์ฅ์ ๋งจ ์์ด๋ฉด ๋ฌด์๋จ)
if(!leftStack.isEmpty()) leftStack.pop();
} else if (order == 'P') {// $๋ผ๋ ๋ฌธ์๋ฅผ ์ปค์ ์ผ์ชฝ์ ์ถ๊ฐํจ
leftStack.push(orderLine.charAt(2));
}
}
while(!leftStack.isEmpty()){
rightStack.push(leftStack.pop());
}
while(!rightStack.isEmpty()){
bw.write(rightStack.pop());
}
br.close();
bw.close();
}
}
โณํ๊ณ
- ๋ฌธ์ ๋ฅผ ๋ณด๊ณ ๋ฌธ์์ด ์ค๊ฐ์ ์ฝ์ , ์ญ์ , ์ด๋์ด ์ผ์ด๋ List๋ฅผ ์ฌ์ฉํ์ฌ ํ์ดํ์๋ค. List๋ฅผ ํ์ํ๋๋ฐ O(N) ์๊ฐ์ด ๋ค์ด์ ์๊ฐ์ด๊ณผ๊ฐ ๋ฐ์ํ๋ค.
- ์ฝ์ , ์ญ์ , ์ด๋ํ๋๋ฐ ์๊ฐ์ O(1)๋ก ์ค์ด๊ธฐ ์ํด์ Stack์ผ๋ก ํ์ดํ์๋ค.
728x90
'Algorithm > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Algorithm/Baekjoon] ์์ฐ - 2512 (S2/JAVA) (1) | 2024.03.20 |
---|---|
[Algorithm/Baekjoon] ์ง๋ฆ๊ธธ - 1446 (S1/JAVA) (2) | 2023.09.12 |
[Algorithm/Baekjoon] ์ฃผ์ ์ - 13305 (S3/JAVA) (1) | 2023.08.07 |
[Algorithm/Baekjoon] ์ฃผ์ - 11501 (S2/JAVA) (0) | 2023.08.01 |
[Algorithm/Baekjoon] ๋น๋ฌผ - 14719 (G5/JAVA) (0) | 2023.07.25 |