문제 : https://www.acmicpc.net/problem/10845
풀이 방법
이 문제는 큐라는 자료구조를 사용해볼 수 있는 가장 간단한 문제라고 볼 수 있습니다. Stack 문제와 같지만, 다른 자료구조를 사용한다라는 점만 다릅니다. 또한, 앞으로 큐를 사용하면서 자주 쓰는 메소드를 접해볼 수 있었고, 더 큐에 대해 알아갈 수 있는 시간이었습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 import java.io.*;import java.util.LinkedList;import java.util.Queue;import java.util.StringTokenizer;public class BOJ10845 { public static void main (String[] args) throws IOException { BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int test_case = Integer.parseInt(bf.readLine()); LinkedList<Integer> queue = new LinkedList<>(); for (int i=0 ;i<test_case;i++){ StringTokenizer st= new StringTokenizer(bf.readLine()," " ); String commnad = st.nextToken(); switch (commnad){ case "push" : int number = Integer.parseInt(st.nextToken()); queue.add(number); break ; case "front" : if (queue.isEmpty()) bw.write(-1 +"\n" ); else bw.write(queue.peekFirst()+"\n" ); break ; case "pop" : if (queue.isEmpty()) bw.write(-1 +"\n" ); else bw.write(queue.poll()+"\n" ); break ; case "size" : bw.write(queue.size()+"\n" ); break ; case "empty" : if (queue.isEmpty()) bw.write(1 +"\n" ); else bw.write(0 +"\n" ); break ; case "back" : if (queue.isEmpty()) bw.write(-1 +"\n" ); else bw.write(queue.peekLast()+"\n" ); break ; } } bw.flush(); bw.close(); } }