Study & Project ✏️/알고리즘 📋

백준[JAVA] 10845.큐 - 자바

JM 2022. 10. 17. 02:52
반응형

📖 문제

📃 코드

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

public class Main {
    public static int index = 0;
    public static int[] arr;

    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());
        arr = new int[N];

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

            String order = st.nextToken();
            switch (order) {
                case "push":
                    int number = Integer.parseInt(st.nextToken());
                    push(number);
                    break;
                case "pop":
                    sb.append(pop()).append('\n');
                    break;
                case "size":
                    sb.append(index).append('\n');
                    break;
                case "empty":
                    sb.append(empty()).append('\n');
                    break;
                case "front":
                    sb.append(front()).append('\n');
                    break;
                case "back":
                    sb.append(back()).append('\n');
                    break;
            }
        }
        System.out.println(sb);
    }

    private static int back() {
        if (index > 0) {
            return arr[index - 1];
        } else {
            return -1;
        }
    }

    private static int front() {
        if (index > 0) {
            return arr[0];
        } else {
            return -1;
        }
    }

    private static int empty() {
        if (index > 0) {
            return 0;
        } else {
            return 1;
        }
    }

    private static int pop() {
        if (index > 0) {
            int ans = arr[0];
            for (int i = 0; i < index; i++) {
                arr[i] = arr[i + 1];
            }
            index--;
            return ans;
        } else {
            return -1;
        }
    }

    private static void push(int number) {
        arr[index] = number;
        index++;
    }
}

 

🔗 링크

https://www.acmicpc.net/problem/10845

 

10845번: 큐

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지

www.acmicpc.net