-
18258 - 큐2알고리즘 2023. 5. 24. 22:49728x90
https://www.acmicpc.net/problem/18258
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayDeque; public class Main { public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); ArrayDeque<Integer> queue = new ArrayDeque<>(); int rowNum = Integer.parseInt(reader.readLine()); StringBuffer buff = new StringBuffer(); for (int i = 0; i < rowNum; i++) { String[] arr = reader.readLine().split(" "); String command = arr[0]; switch (command) { case "push": int num = Integer.parseInt(arr[1]); queue.add(num); break; case "pop": Integer s = queue.poll(); if (s == null) buff.append(-1).append("\n"); else buff.append(s).append("\n"); break; case "size": buff.append(queue.size()).append("\n"); break; case "empty": if (queue.isEmpty()) buff.append(1 + "\n"); else buff.append(0 + "\n"); break; case "front": if (!queue.isEmpty()) buff.append(queue.getFirst() + "\n"); else buff.append(-1).append("\n"); break; case "back": if (!queue.isEmpty()) buff.append(queue.getLast() + "\n"); else buff.append(-1).append("\n"); break; default: break; } // end switch } System.out.println(buff); } }
느낀점
오늘 풀어본 문제는 대부분 내가 많이 써보지 않은 자료구조에 대해서 사용하는 시간이었다.
queue 와 stack 을 사용해 보면서, 유용한 자료구조의 사용이 코드를 얼마나 간편하고 빠르게 해주는지
알게 되었다.
'알고리즘' 카테고리의 다른 글
1021 - 회전하는 큐 (0) 2023.05.26 1874 - 스택 수열 (1) 2023.05.26 10773 - 제로 (0) 2023.05.24 1002 - 터렛 (0) 2023.05.24 1011 - Fly me to the Alpha Centauri (0) 2023.05.24