🐣 알고리즘 삐약/💻 백준 삐약

41 삐약 : 백준 18258| 큐2 [바킹독 문제 풀이|Queue|JAVA]

우주수첩 2023. 10. 24. 08:34
728x90

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

 

18258번: 큐 2

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

www.acmicpc.net

 

 

package BKD_0x6_Queue;

import java.io.*;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;

public class BOJ_18258 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int N  = Integer.parseInt(br.readLine());
        Queue<Integer> queue = new LinkedList<>();
        int last=0;

        for(int i =0;i<N;i++){
        StringTokenizer st = new StringTokenizer(br.readLine());
        switch (st.nextToken()){
            case "push" :
                last = Integer.parseInt(st.nextToken());
                queue.offer(last);
                break;
            case "pop" :
                if(queue.isEmpty()) bw.write(-1+"\n");
                else bw.write(queue.poll()+"\n");
                break;
            case "size" :
                bw.write(queue.size()+"\n");
                break;
            case "empty" :
                if(queue.isEmpty()) bw.write(1+"\n");
                else bw.write(0+"\n");
                break;
            case "front" :
                if(queue.isEmpty()) bw.write(-1+"\n");
                else bw.write(queue.peek()+"\n");
                break;
            case "back" :
                if(queue.isEmpty()) bw.write(-1+"\n");
                else bw.write(last+"\n");
                break;
        }


        }

        bw.flush();
        bw.close();
        br.close();

    }
}

 

 

 

728x90