[백준] 10866. 덱

최대 1 분 소요

10866. 덱


Code

package baekjoon;

import java.io.*;
import java.util.*;

public class 덱_10866 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());

        StringBuilder sb = new StringBuilder();
        Deque<Integer> deque = new LinkedList<>();

        int dqsize = 0;

        for(int i=0; i<N; i++){
            StringTokenizer st = new StringTokenizer(br.readLine(), " ");
            String str = st.nextToken();
            dqsize = deque.size();

            switch(str){
                case "push_front":
                    deque.addFirst(Integer.parseInt(st.nextToken()));
                    break;
                case "push_back":
                    deque.addLast(Integer.parseInt(st.nextToken()));
                    break;
                case "pop_front":
                    if(dqsize == 0) sb.append(-1+"\n");
                    else sb.append(deque.pollFirst()+"\n");
                    break;
                case "pop_back":
                    if(dqsize == 0) sb.append(-1+"\n");
                    else sb.append(deque.pollLast()+"\n");
                    break;
                case "size":
                    sb.append(dqsize+"\n");
                    break;
                case "empty":
                    if(dqsize == 0) sb.append(1+"\n");
                    else sb.append(0+"\n");
                    break;
                case "front":
                    if(dqsize == 0) sb.append(-1+"\n");
                    else sb.append(deque.peekFirst()+"\n");
                    break;
                case "back":
                    if(dqsize == 0) sb.append(-1+"\n");
                    else sb.append(deque.peekLast()+"\n");
                    break;
            }
        }
        System.out.println(sb.toString());
        br.close();
    }
}

카테고리:

업데이트:

댓글남기기