끄적끄적 코딩
article thumbnail
Published 2023. 1. 23. 18:23
[Java] 백준 10845번 큐 알고리즘

큐를 구현하는 문제입니다. 

라이브러리에 큐를 가져와서 사용해도 되고 직접 구현해주어도 됩니다.
java의 경우 너무 많은 값들을 scanner를 통해서 입력받는데 scanner의 속도가 느려서 시간초과가 발생했습니다.

그래서 BufferedReader를 사용해주어서 입력시간을 줄여주었습니다.

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

public class Main{
  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    Queue<Integer> queue = new LinkedList<>();
    
    int n = Integer.parseInt(br.readLine());
    int num;
    int back = -1;
    for(int i=0; i<n; ++i){
      StringTokenizer st = new StringTokenizer(br.readLine());
      String s = st.nextToken();
      if("push".equals(s)){
          num = Integer.parseInt(st.nextToken());
          back = num;
          queue.add(num);
      } else if("pop".equals(s)){
          if(queue.size() != 0) {
            System.out.println(queue.poll());
          } else {
            back = -1;
            System.out.println(-1);
          }
      } else if("size".equals(s)){
          System.out.println(queue.size());
      } else if("empty".equals(s)){
          if(queue.size() == 0){
              System.out.println(1);    
          } else {
              System.out.println(0);
          }
      } else if("front".equals(s)){
        if(queue.size() != 0) {
          System.out.println(queue.peek());
        } else {
          System.out.println(-1);
        }
      } else if("back".equals(s)){
        if(queue.size() != 0) {
          System.out.println(back);
        } else {
          System.out.println(-1);
        }
      }
    }
  }
}

검색 태그