Algorithm/BOJ

[백준-10866] 덱 - java

connieya 2021. 6. 30. 22:29

10866번: 덱 (acmicpc.net)

 

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);
            }
        }


    }
}