"꾸준하고 완벽한 한 걸음"

PS/Baekjoon Online Judge

[백준 28279] 덱2 [Java]

kimyoungrok 2025. 3. 23. 15:57
728x90

문제

https://www.acmicpc.net/problem/28279

 


풀이

문제에서 주어진 조건대로 덱의 기능들을 구현하면 되는 문제다.

스위치문을 사용해서 조건별로 기능들을 구현했다.

        Deque<String> deque = new ArrayDeque<>();
        while (N-- > 0) {
            st = new StringTokenizer(br.readLine());

            // Solve
            switch (Integer.parseInt(st.nextToken())) {
                case 1:
                    deque.addFirst(st.nextToken());
                    break;
                case 2:
                    deque.addLast(st.nextToken());
                    break;
                case 3:
                    sb.append(deque.isEmpty() ? "-1" : deque.removeFirst()).append("\\n");
                    break;
                case 4:
                    sb.append(deque.isEmpty() ? "-1" : deque.removeLast()).append("\\n");
                    break;
                case 5:
                    sb.append(deque.size()).append("\\n");
                    break;
                case 6:
                    sb.append(deque.isEmpty() ? "1\\n" : "0\\n");
                    break;
                case 7:
                    sb.append(deque.isEmpty() ? "-1" : deque.peek()).append("\\n");
                    break;
                case 8:
                    sb.append(deque.isEmpty() ? "-1" : deque.peekLast()).append("\\n");
                    break;
            }
        }

명령의 수는 최대 1e6개 이므로 StringBuilder에 담아서 한 번에 출력했다.


소스코드

https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-judge/easy/28279.java

728x90