Algorithm/BOJ
[백준-10866] 덱 - java
connieya
2021. 6. 30. 22:29
10866번: 덱
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayDeque;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
ArrayDeque<Integer> queue = new ArrayDeque<>();
while (N-- >0){
String cmd = br.readLine();
if (cmd.startsWith("push_front")){
int num = Integer.parseInt(cmd.split(" ")[1]);
queue.offerFirst(num);
}else if (cmd.startsWith("push_back")){
int num = Integer.parseInt(cmd.split(" ")[1]);
queue.offerLast(num);
}else if (cmd.equals("front")){
System.out.println(queue.isEmpty() ? -1 : queue.peekFirst());
}else if (cmd.equals("back")){
System.out.println(queue.isEmpty()?-1:queue.peekLast());
}else if (cmd.equals("size")){
System.out.println(queue.size());
}else if (cmd.equals("pop_front")){
System.out.println(queue.isEmpty()?-1:queue.pollFirst());
}else if (cmd.equals("pop_back")){
System.out.println(queue.isEmpty()?-1:queue.pollLast());
}else if (cmd.equals("empty")){
System.out.println(queue.isEmpty()?1:0);
}
}
}
}