취미처럼

[백준] 10845번 큐 본문

Algorithm/백준

[백준] 10845번 큐

sirius 2021. 3. 9. 10:05
https://www.acmicpc.net/problem/10845
 

10845번: 큐

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

www.acmicpc.net

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

public class Main {
     
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();  
        StringTokenizer st;
        int n = Integer.parseInt(br.readLine());

        Queue<Integer> queue = new LinkedList<>();
        int back = 0;
        for(int i = 0; i < n; i++) {
            st = new StringTokenizer(br.readLine());
            String text = st.nextToken();

            if("push".equals(text)) {
            	back = Integer.parseInt(st.nextToken());
            } 
            switch(text) {
                case "push":
                	queue.offer(back);
                	break;
                case "front":
                    if(queue.isEmpty()) {
                    	sb.append(-1).append("\n");
                    } else {
                    	sb.append(queue.peek()).append("\n");
                    }
                	break;
                case "back":
                    if(queue.isEmpty()) {
                    	sb.append(-1).append("\n");
                    } else {
                    	sb.append(back).append("\n");
                    }
                    break;
                case "size":
                    sb.append(queue.size()).append("\n");
                    break;
                case "empty":
                    if(queue.isEmpty()) {
                    	sb.append(1).append("\n");
                    } else {
                    	sb.append(0).append("\n");
                    }
                    break;
                case "pop":
                    if(queue.isEmpty()) {
                    	sb.append(-1).append("\n");
                    } else {
                    	sb.append(queue.poll()).append("\n");
                    }
                    break;
            }
        }
        System.out.println(sb);
    }


}

'Algorithm > 백준' 카테고리의 다른 글

[백준] 13023번 ABCDE  (0) 2021.03.09
[백준] 10866번 덱  (0) 2021.03.09
[백준] 2133번 타일 채우기  (0) 2021.03.09
[백준] 13398번 연속합2  (0) 2021.03.09
[백준] 11054번 가장 긴 바이토닉 부분 수열  (0) 2021.03.09
Comments