개발 낙서장

[BOJ][JAVA] 10845 큐 본문

Algorithm/BOJ

[BOJ][JAVA] 10845 큐

권승준 2024. 5. 2. 17:20

10845 큐

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

풀이 방법

생각 없이 작성하면 바로 시간 초과 나는 문제이다.그냥 큐를 사용하면 되기에 난이도는 굉장히 쉽지만 별 생각 없이 List를 사용한다거나 값을 바로바로 출력해 오버헤드를 발생시키면 0.5초 제한 시간에 걸려 실패해버린다.나는 for문 안에서 바로바로 출력했었는데 시간 초과가 발생했었다.

소스 코드

더보기
import java.util.ArrayDeque;
import java.util.Scanner;

public class Problem_10845 {
    public static void main(String[] args) throws Exception {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        scanner.nextLine();
        ArrayDeque<Integer> queue = new ArrayDeque<>();
        StringBuilder sb = new StringBuilder();

        for (int i = 0; i < n; i++) {
            String input = scanner.nextLine();
            String[] values = input.split(" ");
            if (values.length > 1) {
                int value = Integer.parseInt(values[1]);
                queue.addLast(value);
            } else {
                switch (input) {
                    case "size":
                        sb.append(queue.size() + "\n");
                        break;
                    case "empty":
                        sb.append(!queue.isEmpty() ? 0 + "\n" : 1 + "\n");
                        break;
                    case "front":
                        sb.append(!queue.isEmpty() ? queue.getFirst() + "\n" : -1 + "\n");
                        break;
                    case "back":
                        sb.append(!queue.isEmpty() ? queue.getLast() + "\n" : -1 + "\n");
                        break;
                    case "pop":
                        sb.append(!queue.isEmpty() ? queue.removeFirst() + "\n" : -1 + "\n");
                        break;
                }
            }
        }

        scanner.close();
        System.out.println(sb);
    }
}

'Algorithm > BOJ' 카테고리의 다른 글

[BOJ][JAVA] 5430 AC  (0) 2024.05.07
[BOJ][JAVA] 1874 스택 수열  (0) 2024.05.04
Comments