반응형

 

 

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Deque;
import java.util.LinkedList;
import java.util.Queue;

public class Main {
    public static void main(String[] args) throws Exception {
        Deque<Integer> dq = new LinkedList<>();
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int testcase = Integer.parseInt(br.readLine());
        for(int i=0; i<testcase; i++) {
            String str = br.readLine();
            if(str.contains("push")) {
                dq.addLast(Integer.parseInt(str.split(" ")[1]));
            } else if(str.contains("pop")) {
                System.out.println(dq.size() == 0 ? -1 : dq.pollFirst());
            } else if(str.contains("size")) {
                System.out.println(dq.size());
            } else if(str.contains("empty")) {
                System.out.println(dq.isEmpty() ? 1 : 0);
            } else if(str.contains("front")) {
                System.out.println(dq.size() == 0 ? -1 : dq.peekFirst());
            } else if(str.contains("back")) {
                System.out.println(dq.size() == 0 ? -1 : dq.peekLast());
            }
        }
    }
}

 

처음에 queue 로 풀려했는데, 뒤에 요소를 가져와 출력하는게 있어서 deque 로 변경하였다.

(queue 로 뒷요소 가져오려면 linkedlist 로 형변환하고 어쩌고 해야한대서 ..)

 

dq.pollFirst(); // 첫번째 값 반환 후 삭제

dq.pollLast(); // 마지막 값 반환 후 삭제

dq.peekFirst(); // 첫번째 값 반환

dq.peekLast(); // 마지막 값 반환

반응형

+ Recent posts