백준 10845 큐 (Queue) JAVA

해버니·2022년 4월 17일
0

백준

목록 보기
2/11

Queue란?

줄을 지어 순서대로 처리되는 것

Queue의 특징

  1. 먼저 들어간 자료가 먼저 나오는 FIFO구조
  2. 큐는 한 쪽 끝은 font로 정하여 삭제 연산만 수행
  3. 다른 한 쪽 끝은 리어로 정하여 삽입 연산만 수행
  4. 그래프의 넓이 우선 탐색 (BFS)에서 사용
  5. 컴퓨터 버퍼에서 주로 사용.

자바에서 큐는 LinkedList 활용



package baekjoon;

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


public class Queue_10845 {
	public static void main(String args[]) throws IOException {
		Queue<Integer> queue=new LinkedList<>();
		BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
		
		int N=Integer.parseInt(bf.readLine());
		int b=0;

		for(int i=0;i<N;i++) {
			StringTokenizer st=new StringTokenizer(bf.readLine());
			String S=st.nextToken();
			
			switch(S){
				case "push":
					int num=Integer.parseInt(st.nextToken());
					queue.add(num);
					b=num;
					break;
				
				case "pop":
					if(queue.isEmpty()) {
						System.out.println(-1);
					} else {
						System.out.println(queue.poll());
					}
					break;
					
				case "size":
					System.out.println(queue.size());
					break;
					
				case "empty":
					if(queue.isEmpty()){
						System.out.println(1);
					}
					else {
						System.out.println(0);
					}
					break;
					
				case "front":
					if(queue.isEmpty()) {
						System.out.println(-1);
					} else {
						System.out.println(queue.peek());
					}
					
					break;
					
				case "back":
					if(queue.isEmpty()) {
						System.out.println(-1);
					} else {
						System.out.println(b);
					}
					break;
			}
		}
		
	}
}

참고 : https://coding-factory.tistory.com/602

0개의 댓글