본문 바로가기

백준/Data Structures

백준 10866 자바

반응형

 

백준 Deque 관련 문제이고 stack, queue의 기본 문제들과 비슷합니다.

import java.io.*;
import java.util.*;
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        ArrayDeque<Integer> dq = new ArrayDeque<>();
        StringBuilder sb = new StringBuilder();

        int N = Integer.parseInt(br.readLine());

        for (int i = 0; i < N; i++) {
            String[] s = br.readLine().split(" ");

            switch (s[0]) {

                case"push_front" : {
                    dq.addFirst(Integer.parseInt(s[1]));
                    break;
                }

                case "push_back" : {
                    dq.addLast(Integer.parseInt(s[1]));
                    break;
                }

                case "pop_front" : {
                    if(dq.isEmpty()) {
                        sb.append(-1).append('\n');
                    }
                    else {
                        sb.append(dq.pollFirst()).append('\n');
                    }
                    break;
                }

                case "pop_back" : {
                    if(dq.isEmpty()) {
                        sb.append(-1).append('\n');
                    } else {
                        sb.append(dq.pollLast()).append('\n');
                    }
                    break;
                }

                case "size": {
                    sb.append(dq.size()).append('\n');
                    break;
                }

                case "empty" : {
                    if(dq.isEmpty()) {
                        sb.append(1).append('\n');
                    } else {
                        sb.append(0).append('\n');
                    }
                    break;
                }

                case "front" : {
                    if(dq.isEmpty()) {
                        sb.append(-1).append('\n');
                    } else {
                        sb.append(dq.peekFirst()).append('\n');
                    }
                    break;
                }

                case "back" : {
                    if (dq.isEmpty()) {
                        sb.append(-1).append('\n');
                    } else {
                        sb.append(dq.peekLast()).append('\n');
                    }
                    break;
                }
            }
        }
        System.out.println(sb);
    }
}
반응형

'백준 > Data Structures' 카테고리의 다른 글

백준 28278 스택 2 자바  (0) 2024.08.18
백준 17608 자바  (0) 2022.08.23
백준 2161 자바  (0) 2022.08.22
백준 4949 자바  (0) 2022.08.22
백준 9012 자바  (0) 2022.08.22