알고리즘
백준 자바 10845번 큐
chaewonni
2023. 3. 30. 03:17
그냥 큐를 쓸 수 있냐를 물어보는 문제!
package boj_basic.cp_1;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.LinkedList;
import java.util.Queue;
public class Q10845큐 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
Queue<Integer> queue = new LinkedList<>();
int N = Integer.parseInt(br.readLine());
int last = -1;
for(int i = 0; i<N; i++) {
String[] arr = br.readLine().split(" ");
switch(arr[0]) {
case "push":
last = Integer.parseInt(arr[1]);
queue.add(last);
break;
case "pop":
if(!queue.isEmpty())
bw.write(queue.remove()+"\n");
else
bw.write("-1"+"\n");
break;
case "size":
bw.write(queue.size()+"\n");
break;
case "empty":
if(!queue.isEmpty())
bw.write("0"+"\n");
else
bw.write("1"+"\n");
break;
case "front":
if(!queue.isEmpty())
bw.write(queue.peek()+"\n");
else
bw.write("-1"+"\n");
break;
case "back":
if(!queue.isEmpty())
bw.write(last+"\n");
else
bw.write("-1"+"\n");
break;
}
}
bw.flush();
bw.close();
br.close();
}
}
다른 건 다 괜찮았는데 back으로 큐의 가장 뒤에 있는 정수 출력하는 게 살짝 당황스러웠다.
push할 때
last = Integer.parseInt(arr[1]);
queue.add(last);
해서 가장 뒤에 있는 정수를 last로 기억해두었다가,
back에서 last를 출력해줄 수 있도록 했다.