[java] 백준 10866번 덱

코딩테스트

목록 보기
6/9

문제

입출력

구현

java에서 제공해주는 라이브러리로 구현

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Deque;
import java.util.LinkedList;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException
    {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        Deque<Integer> deque= new LinkedList<>();
        StringTokenizer st;
        StringBuilder sb = new StringBuilder();

        int N = Integer.parseInt(br.readLine());

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

            switch (s){
                case "push_front":
                    deque.addFirst(Integer.parseInt(st.nextToken()));
                    break;
                case "push_back":
                    deque.addLast(Integer.parseInt(st.nextToken()));
                    break;
                case "pop_front":
                    if(!deque.isEmpty())
                        sb.append( deque.pollFirst()).append('\n');
                    else
                        sb.append(-1).append('\n');
                    break;
                case "pop_back":
                    if(!deque.isEmpty())
                        sb.append(deque.pollLast()).append('\n');
                    else
                        sb.append(-1).append('\n');
                    break;
                case "size":
                    sb.append(deque.size()).append('\n');
                    break;
                case "empty":
                    if(deque.isEmpty())
                        sb.append(1).append('\n');
                    else
                        sb.append(0).append('\n');
                    break;
                case "front":
                    if(!deque.isEmpty())
                        sb.append(deque.peekFirst()).append('\n');
                    else
                        sb.append(-1).append('\n');
                    break;
                case "back":
                    if(!deque.isEmpty())
                        sb.append(deque.peekLast()).append('\n');
                    else
                        sb.append(-1).append('\n');
                    break;
            }

        }
        System.out.println(sb);
    }
}

스택, 큐, 덱 모두 라이브러리로 풀고 느낀점

라이브러리 말고 직접 구현해보는 시간의 필요성을 느꼈다.

0개의 댓글