코딩테스트/BOJ

[BOJ] 10866 덱 - JAVA

5월._. 2022. 2. 7.
728x90

1. 문제


2. 풀이

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

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

        Deque<Integer> deque = new ArrayDeque<>();

        StringTokenizer st;
        StringBuilder sb = new StringBuilder();
        while (N-- > 0) {
            st = new StringTokenizer(in.readLine());
            switch (st.nextToken()) {
                case "push_front":
                    deque.offerFirst(Integer.parseInt(st.nextToken()));
                    break;
                case "push_back":
                    deque.offerLast(Integer.parseInt(st.nextToken()));
                    break;
                case "pop_front":
                    if(deque.isEmpty()) sb.append("-1\n");
                    else sb.append(deque.pollFirst()).append("\n");
                    break;
                case "pop_back":
                    if(deque.isEmpty()) sb.append("-1\n");
                    else sb.append(deque.pollLast()).append("\n");
                    break;
                case "size":
                    sb.append(deque.size()).append("\n");
                    break;
                case "empty":
                    if(deque.isEmpty()) sb.append("1\n");
                    else sb.append("0\n");
                    break;
                case "front":
                    if(deque.isEmpty()) sb.append("-1\n");
                    else sb.append(deque.peekFirst()).append("\n");
                    break;
                case "back":
                    if(deque.isEmpty()) sb.append("-1\n");
                    else sb.append(deque.peekLast()).append("\n");
                    break;
            }
        }
        System.out.print(sb);
    }
}

3. 결과

덱의 사용법만 알면 간단하게 풀 수 있는 문제였다.

'코딩테스트 > BOJ' 카테고리의 다른 글

[BOJ] 5430 AC - JAVA  (0) 2022.02.07
[BOJ] 1021 회전하는 큐 - JAVA  (0) 2022.02.07
[BOJ] 1966 프린터큐 - JAVA  (0) 2022.02.07
[BOJ] 11866 요세푸스 문제 0 - JAVA  (0) 2022.02.06
[BOJ] 2164 카드2 - JAVA  (0) 2022.02.06

댓글