[BOJ 10845] 큐 (java)

less than 1 minute read

:pencil2: 문제 링크 https://www.acmicpc.net/problem/10845 :pencil2:

문제 풀이

package basics_200;

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

public class BOJ10845 {

	public static void main(String[] args) throws NumberFormatException, IOException {
		//자바에서의 큐는 LinkedList를 활용해서 생성함 
		Queue<String> queue = new LinkedList<>();
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		// 테스트케이스
		Integer tc = Integer.parseInt(br.readLine());

		String first="";
		while(tc>0) {
			String s = br.readLine();
			String[] array = s.split(" ");
			switch(array[0]) {
				case("push"):
					//큐 값 추가 -> add or offer(스택은 add, queue는 주로 offer) 
					// add: 삽입성공-> true/ 실패-> IllegalStateException 
					first = array[1];
					queue.offer(first);
					break;
				case("pop"):
					//큐 값 삭제 -> remove or poll
					//poll: 큐가 비어있다면 null 반환 
					if(queue.isEmpty()) {
						System.out.println(-1);
					}else {
						System.out.println(queue.poll());
					}
					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(first);
					}
					break;
				case("size"):
					System.out.println(queue.size());
					break;
				case("empty"):
					if(queue.isEmpty()) {
						System.out.println(1);
					}else {
						System.out.println(0);
					}
					break;
			}
			tc--;
		}

	}

}

Comments