반응형
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(); // 마지막 값 반환
반응형