https://www.acmicpc.net/problem/10866

๐Ÿ“ ํ’€์ด : ArrayDeque

import java.io.*;
import java.util.*;
public class Main {
// ์ •์ˆ˜๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฑ(Deque)๋ฅผ ๊ตฌํ˜„ํ•œ ๋‹ค์Œ, ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€๋Š” ๋ช…๋ น์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine()); // ๋ช…๋ น์˜ ์ˆ˜ N (1 โ‰ค N โ‰ค 10,000)
Deque<Integer> deque = new ArrayDeque<>(); // ๋ฑ ์ƒ์„ฑ (ArrayDeque)
StringBuilder sb = new StringBuilder();
/* ๋ฐ˜๋ณต๋ฌธ(๋ช…๋ น ์ฒ˜๋ฆฌ)โœจ */
while (N-- > 0) {
String[] command = br.readLine().split(" ");
switch (command[0]) {
case "push_front":
deque.offerFirst(Integer.parseInt(command[1]));
break;
case "push_back":
deque.offerLast(Integer.parseInt(command[1]));
break;
case "pop_front":
sb.append(deque.isEmpty() ? "-1" : deque.pollFirst()).append("\n");
break;
case "pop_back":
sb.append(deque.isEmpty() ? "-1" : deque.pollLast()).append("\n");
break;
case "size":
sb.append(deque.size()).append("\n");
break;
case "empty":
sb.append(deque.isEmpty() ? 1 : 0).append("\n");
break;
case "front":
sb.append(deque.isEmpty() ? "-1" : deque.peekFirst()).append("\n");
break;
case "back":
sb.append(deque.isEmpty() ? "-1" : deque.peekLast()).append("\n");
break;
} // switch
} // while
System.out.println(sb);
}
}
 
yewon31