문제
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 |