728x90
1. 문제
2. 풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayDeque;
import java.util.Deque;
import java.util.StringTokenizer;
public class BOJ_10866_덱 {
public static void main(String[] args) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(in.readLine());
Deque<Integer> deque = new ArrayDeque<>();
StringTokenizer st;
StringBuilder sb = new StringBuilder();
while (N-- > 0) {
st = new StringTokenizer(in.readLine());
switch (st.nextToken()) {
case "push_front":
deque.offerFirst(Integer.parseInt(st.nextToken()));
break;
case "push_back":
deque.offerLast(Integer.parseInt(st.nextToken()));
break;
case "pop_front":
if(deque.isEmpty()) sb.append("-1\n");
else sb.append(deque.pollFirst()).append("\n");
break;
case "pop_back":
if(deque.isEmpty()) sb.append("-1\n");
else sb.append(deque.pollLast()).append("\n");
break;
case "size":
sb.append(deque.size()).append("\n");
break;
case "empty":
if(deque.isEmpty()) sb.append("1\n");
else sb.append("0\n");
break;
case "front":
if(deque.isEmpty()) sb.append("-1\n");
else sb.append(deque.peekFirst()).append("\n");
break;
case "back":
if(deque.isEmpty()) sb.append("-1\n");
else sb.append(deque.peekLast()).append("\n");
break;
}
}
System.out.print(sb);
}
}
3. 결과
덱의 사용법만 알면 간단하게 풀 수 있는 문제였다.
'코딩테스트 > BOJ' 카테고리의 다른 글
[BOJ] 5430 AC - JAVA (0) | 2022.02.07 |
---|---|
[BOJ] 1021 회전하는 큐 - JAVA (0) | 2022.02.07 |
[BOJ] 1966 프린터큐 - JAVA (0) | 2022.02.07 |
[BOJ] 11866 요세푸스 문제 0 - JAVA (0) | 2022.02.06 |
[BOJ] 2164 카드2 - JAVA (0) | 2022.02.06 |
댓글