class MyQueue {
Stack<Integer> queue = new Stack<>();
Stack<Integer> temp = new Stack<>();
public MyQueue() {
}
public void push(int x) {
while(!queue.isEmpty()){
temp.push(queue.pop());
}
queue.push(x);
while(!temp.isEmpty()){
queue.push(temp.pop());
}
}
public int pop() {
return queue.pop();
}
public int peek() {
return queue.peek();
}
public boolean empty() {
return queue.empty();
}
}
두 가지 stack 을 이용하는데 실제적인 queue로 생각하는 stack과 이를 반대로 바꾸어줄 임시적인 저장공간인 stack 을 이용한다.