문제 풀이/백준

[백준] 18258번. 큐 2(JAVA)

27200 2025. 1. 19. 17:14

문제

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


풀이(18분)

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
import java.util.Deque;
import java.util.LinkedList;
 
public class Main {
 
	public static void main(String[] args) throws IOException {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		
		Deque<Integer> q = new LinkedList<>();
		
		int N = Integer.parseInt(br.readLine());
		
		StringTokenizer command;
		
		while(N-- > 0) {
			command = new StringTokenizer(br.readLine(), " ");
			
			switch(command.nextToken()) {	
			
			case "push":
				q.offer(Integer.parseInt(command.nextToken()));	
				break;
			
			case "pop" :
				Integer item = q.poll();	
				if(item == null) {
					sb.append(-1).append('\n');
				}
				else {
					sb.append(item).append('\n');
				}
				break;
				
			case "size":	
				sb.append(q.size()).append('\n');
				break;
				
			case "empty":
				if(q.isEmpty()) {
					sb.append(1).append('\n');
				}
				else {
					sb.append(0).append('\n');
				}
				break;
				
			case "front":
				Integer ite = q.peek();
				if(ite == null) {
					sb.append(-1).append('\n');
				}
				else {
					sb.append(ite).append('\n');
				}
				break;
				
			case "back":
				Integer it = q.peekLast();	 
				if(it == null) {
					sb.append(-1).append('\n');
				}
				else {
					sb.append(it).append('\n');
				}
				break;
			}
		}
		System.out.println(sb);
	}
}

 

큐에 peekLast라는 메서드가 존재하는지 몰라서 고민을 좀 하다가 메서드를  찾아보고 해결했다.

 

그 외에는 단순 구현 문제라고 느꼈다.

'문제 풀이 > 백준' 카테고리의 다른 글

[백준] 1966번. 프린터 큐(JAVA)  (0) 2025.01.21
[백준] 10828번. 스택(JAVA)  (0) 2025.01.19
[백준] 1303번. 전쟁 - 전투(JAVA)  (0) 2025.01.14
[백준] 5567번. 결혼식(JAVA)  (0) 2025.01.14
[백준] 2981번. 검문(JAVA)  (0) 2025.01.14