Stack을 이용하여 Queue 구현

이산·2023년 1월 12일
0

기술블로그

목록 보기
36/42

스택 한개는 InBox, 한 개는 OutBox로 만든다.

순서

  1. inBox에 데이터를 push한다. ex) 4→ 3→ 2→ 1
  2. inBox에 있는 데이터를 pop 하여 outBox에 push한다. ex) 1→ 2→ 3→ 4
  3. 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())
profile
백엔드 개발자입니다.

0개의 댓글