• 문제 링크
27497번: 알파벳 블록
첫째 줄에 버튼을 누른 횟수 $N$이 주어진다. $(1 \leq N \leq 1\,000\,000)$ 둘째 줄부터 $N$개의 줄에는 버튼을 누른 순서대로 누른 버튼에 대한 정보를 주며 아래와 같은 형식으로 주어진다. 1 c : 문자열
www.acmicpc.net
• 풀이 과정
• 풀이 코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayDeque;
import java.util.Deque;
import java.util.Stack;
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));
int n = Integer.parseInt(br.readLine());
Deque<Character> dq = new ArrayDeque<>();
Stack<Boolean> stk = new Stack<>();
while (n-- > 0) {
String input = br.readLine();
char op = input.charAt(0);
if (op == '1') {
dq.offerLast(input.charAt(2));
stk.push(true);
} else if (op == '2') {
dq.offerFirst(input.charAt(2));
stk.push(false);
} else if (!dq.isEmpty()) {
if (stk.pop()) dq.removeLast();
else dq.removeFirst();
}
}
StringBuilder sb = new StringBuilder();
for (char c : dq)
sb.append(c);
bw.write(sb.length() > 0 ? sb.toString() : "0");
bw.flush();
}
}
'Problem Solving > Baekjoon' 카테고리의 다른 글
[백준] 5957 Cleaning the Dishes - Data Structure / Java (0) | 2023.06.26 |
---|---|
[백준] 4921 나무 블록 - Data Structure / Java (0) | 2023.06.25 |
[백준] 3018 캠프파이어 - Data Structure / Java (0) | 2023.06.23 |
[백준] 14171 Cities and States - Data Structure / Java (0) | 2023.06.22 |
[백준] 17393 다이나믹 롤러 - BinarySearch / Java (0) | 2023.06.21 |
댓글