Coding - Algo/Java
[백준] 10845번:큐 (Java 자바)
jainn
2021. 8. 5. 23:49
728x90
문제
https://www.acmicpc.net/problem/10845
10845번: 큐
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
풀이 및 소스코드
자바에도 queue API가 잘 되어있어서 그것을 사용했다.
import java.io.*;
import java.util.*;
class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
StringBuilder sb = new StringBuilder();
Queue<Integer> q = new LinkedList<Integer>();
int b=0;
int n = Integer.parseInt(br.readLine());
for(int i=0;i<n;i++) {
String tmp = br.readLine();
if(tmp.contains("push")) {
st = new StringTokenizer(tmp);
st.nextToken();
int num = Integer.parseInt(st.nextToken());
q.add(num);
b = num;
}
else if(tmp.equals("pop")) {
if(q.isEmpty()) {
sb.append("-1\n");
}else {
sb.append(q.remove()+"\n");
}
}else if(tmp.equals("size")) {
sb.append(q.size()+"\n");
}else if(tmp.equals("empty")) {
if(q.isEmpty()) sb.append("1\n");
else sb.append("0\n");
}else if(tmp.equals("front")) {
if(q.isEmpty()) sb.append("-1\n");
else sb.append(q.peek()+"\n");
}else {
if(q.isEmpty()) sb.append("-1\n");
else sb.append(b+"\n");
}
}
System.out.println(sb);
}
}
반응형