백준

백준 10866 - Java

으엉어엉 2024. 8. 24. 19:46
728x90

문제

 

 

내  풀이

Deque에 관해 이해도가 있다면 간단한 문제이다.

import java.util.ArrayDeque;
import java.util.Deque;
import java.util.Scanner;

public class Deck {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();

        Deque<Integer> deck = new ArrayDeque<>();
        for (int i = 0; i < N; i++) {
            String command = sc.next();

            switch (command) {
                case "push_back":
                    int x = sc.nextInt();
                    deck.addLast(x);  // 덱의 뒤에 값을 추가
                    break;

                case "push_front":
                    int y = sc.nextInt();
                    deck.addFirst(y);  // 덱의 앞에 값을 추가
                    break;

                case "pop_front":
                    if (deck.isEmpty()) {
                        System.out.println(-1);
                    } else {
                        System.out.println(deck.pollFirst());  // 덱의 앞에서 값을 제거하고 출력
                    }
                    break;

                case "pop_back":
                    if (deck.isEmpty()) {
                        System.out.println(-1);
                    } else {
                        System.out.println(deck.pollLast());  // 덱의 뒤에서 값을 제거하고 출력
                    }
                    break;

                case "size":
                    System.out.println(deck.size());  // 덱의 크기를 출력
                    break;

                case "empty":
                    if (deck.isEmpty()) {
                        System.out.println(1);
                    } else {
                        System.out.println(0);
                    }
                    break;

                case "front":
                    if (deck.isEmpty()) {
                        System.out.println(-1);
                    } else {
                        System.out.println(deck.peekFirst());  // 덱의 앞의 값을 출력
                    }
                    break;

                case "back":
                    if (deck.isEmpty()) {
                        System.out.println(-1);
                    } else {
                        System.out.println(deck.peekLast());  // 덱의 뒤의 값을 출력
                    }
                    break;
            }
        }
    }
}

 

728x90

'백준' 카테고리의 다른 글

백준 14425 - Java  (1) 2024.08.28
백준 10815 - Java  (1) 2024.08.28
백준 1158 - Java  (0) 2024.08.24
백준 10845 - java  (0) 2024.08.15
백준 1406 - java  (0) 2024.08.13