코딩테스트

[백준 / 실버4] 10845 : 큐 (JAVA)

lyndaa 2023. 3. 24. 23:03

문제


풀이 방법

  • Queue 사용한다.
    • Queue를 사용하는 방법으로 Deque, Queue, LinkedList가 있는데 큐의 양쪽으로 접근이 필요하므로 Deque 사용
  • Switch 구문을 사용해서 input 별로 처리한다.

코드

package boj10845;

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 Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        int n = Integer.parseInt(br.readLine());
        String str;
        int k;
        Deque<Integer> que = new ArrayDeque<>();

        for (int i = 0; i < n; i++) {
            StringTokenizer st = new StringTokenizer(br.readLine());
            str = st.nextToken();
            switch (str) {
                case "push":
                    k = Integer.parseInt(st.nextToken());
                    que.offer(k);
                    break;
                case "pop":
                    sb.append(que.isEmpty() ? -1:que.poll()).append('\n');
                    break;
                case "size":
                    sb.append(que.size()).append('\n');
                    break;
                case "empty":
                    sb.append(que.isEmpty() ? 1:0).append('\n');
                    break;
                case "front":
                    sb.append(que.isEmpty() ? -1:que.peek()).append('\n');
                    break;
                case "back":
                    sb.append(que.isEmpty() ? -1:que.peekLast()).append('\n');
                    break;
            }
        }
        System.out.print(sb);
    }
}