큐를 구현하는 문제입니다.
라이브러리에 큐를 가져와서 사용해도 되고 직접 구현해주어도 됩니다.
java의 경우 너무 많은 값들을 scanner를 통해서 입력받는데 scanner의 속도가 느려서 시간초과가 발생했습니다.
그래서 BufferedReader를 사용해주어서 입력시간을 줄여주었습니다.
import java.util.*;
import java.io.*;
public class Main{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Queue<Integer> queue = new LinkedList<>();
int n = Integer.parseInt(br.readLine());
int num;
int back = -1;
for(int i=0; i<n; ++i){
StringTokenizer st = new StringTokenizer(br.readLine());
String s = st.nextToken();
if("push".equals(s)){
num = Integer.parseInt(st.nextToken());
back = num;
queue.add(num);
} else if("pop".equals(s)){
if(queue.size() != 0) {
System.out.println(queue.poll());
} else {
back = -1;
System.out.println(-1);
}
} else if("size".equals(s)){
System.out.println(queue.size());
} else if("empty".equals(s)){
if(queue.size() == 0){
System.out.println(1);
} else {
System.out.println(0);
}
} else if("front".equals(s)){
if(queue.size() != 0) {
System.out.println(queue.peek());
} else {
System.out.println(-1);
}
} else if("back".equals(s)){
if(queue.size() != 0) {
System.out.println(back);
} else {
System.out.println(-1);
}
}
}
}
}
'알고리즘' 카테고리의 다른 글
[Java] 백준 15649번 N과 M (1) (0) | 2023.01.23 |
---|---|
[Java] 백준 1260번 DFS와 BFS (0) | 2023.01.23 |
[Java] 백준 14891번 톱니바퀴 (1) | 2023.01.20 |
[Java] 백준 14889번 스타트와 링크 (0) | 2023.01.19 |
[Java] 백준 18111번 마인크래프트 (0) | 2023.01.19 |