본문 바로가기
Beakjoon&프로그래머스/Java

[백준/Java] 18258번 큐 2

by 현장 2025. 12. 26.

-Code

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

public class BOJ18258 {
    public static void main(String[] args) throws IOException {
        BufferedReader br =
                new BufferedReader(new InputStreamReader(System.in));
        Deque<Integer> queue = new ArrayDeque<>();
        StringBuilder answer = new StringBuilder();

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

        for (int i = 0; i < n; i++) {
            StringTokenizer st = new StringTokenizer(br.readLine());
            String comm = st.nextToken();
            if (comm.equals("push")) {
                // push일 경우 add
                queue.offer(Integer.parseInt(st.nextToken()));
            } else {
                if (comm.equals("pop")) {
                    answer.append(queue.isEmpty() ? -1 : queue.poll());
                } else if (comm.equals("size")) {
                    answer.append(queue.size());
                } else if (comm.equals("empty")) {
                    answer.append(queue.isEmpty() ? 1 : 0);
                } else if (comm.equals("front")) {
                    answer.append(queue.isEmpty() ? -1 : queue.getFirst());
                } else if (comm.equals("back")) {
                    answer.append(queue.isEmpty() ? -1 : queue.getLast());
                }
                answer.append("\n");
            }
        }
        System.out.println(answer);
        br.close();
    }
}

출력을 System.out.println으로 하면 시간 초과가 걸려서 StringBuilder를 사용해서 해결했습니다.