스택 한개는 InBox, 한 개는 OutBox로 만든다.
- inBox에 데이터를 push한다. ex) 4→ 3→ 2→ 1
- inBox에 있는 데이터를 pop 하여 outBox에 push한다. ex) 1→ 2→ 3→ 4
- outBox에 있는 데이터를 pop 한다. - 4→ 3→ 2→ 1
push -> 데이터 삽입
pop -> 스택은 후입선출 이므로 마지막에 push된 데이터를 가지고 온다.
class Queue:
def __init__(self):
self.inbox = list()
self.outbox = list()
def push(self, item):
self.inbox.append(item)
def pop(self):
if not self.inbox:
while self.inbox:
self.outbox.append(self.inbox.pop())
return self.inbox.pop()
queue = Queue()
queue.push(4)
queue.push(3)
queue.push(2)
queue.push(1)
print(queue.pop())
print(queue.pop())
print(queue.pop())
print(queue.pop())