9장_24 스택을 이용한 큐 구현

김동민·2021년 10월 23일
0

두 개의 스택만 사용하여 첫 번째 아웃(FIFO) 큐에서 첫 번째 대기열을 구현합니다.


클래스 구현:MyQueue
void push(int x) 요소 x를 큐 뒤쪽으로 푸시합니다.
int pop() 큐 의 전면에서 요소를 제거하고 반환합니다.
int peek() 큐 의 전면에 요소를 반환합니다.
boolean empty() 그렇지 않으면 큐가 비어 있으면 반환됩니다.truefalse

23번과 반대로 큐를 스택으로 구현해야한다.

1.배열을 이용한 풀이

class MyQueue:
    def __init__(self):
        self.input = []
        self.output = []

    def push(self, x):
        self.input.append(x)

    def pop(self):
        self.peek()
        return self.output.pop()

    def peek(self):
        # output이 없으면 모두 재입력
        if not self.output:
            while self.input:
                self.output.append(self.input.pop())
        return self.output[-1]

    def empty(self):
        return self.input == [] and self.output == []

profile
틀리면 당신이 맞습니다... 개발하며 얻은 지식창고

0개의 댓글