728x90
큐를 구현하는 문제입니다.
라이브러리에 큐를 가져와서 사용해도 되고 직접 구현해주어도 됩니다.
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 |