์ฝ๋
import java.util.ArrayDeque;
import java.util.Deque;
class MyQueue {
private Deque<Integer> input;
private Deque<Integer> output;
// ํ ์ด๊ธฐํ
public MyQueue() {
input= new ArrayDeque<>();
output = new ArrayDeque<>();
}
// ํ์ ๋ค์ x์ถ๊ฐ
public void push(int x) {
input.push(x);
}
// ํ์ ๊ฐ์ฅ ์ ์์๋ฅผ ์ ๊ฑฐ ํ ๊ฐ ๋ฐํ
public int pop() {
moveInputToOutput();
return output.pop();
}
// ํ์ ๊ฐ์ฅ ์ ์์์ ๊ฐ๋ง ๋ฐํ
public int peek() {
moveInputToOutput();
return output.peek();
}
// ํ๊ฐ ๋น์ด์๋์ง ํ์ธ
public boolean empty() {
return input.isEmpty() && output.isEmpty();
}
// output์ด ๋น์ด์์ผ๋ฉด, input์ ๋ชจ๋ ์์๋ฅผ output์ผ๋ก ์ฎ๊น -> ์์ ์์ ๋ค์ง๊ธฐ.
private void moveInputToOutput() {
if (output.isEmpty()) {
while (!input.isEmpty()) {
output.push(input.pop());
}
}
}
}
Java
๋ณต์ฌ