9장_23 스택,큐(큐를 이용한 스택 구현)

김동민·2021년 10월 23일
0

큐를 이용해 다음 연산을 지원하는 스택을 구현하라.

  • push(x): 요소 x를 스택에 삽입한다.
  • pop(): 스택의 첫 번째 요소를 삭제한다.
  • top(): 스택의 첫 번째 요소를 가져온다.
  • empty(): 스택이 비어있는지 여부를 리턴한다.


    MyStack stack = new MyStack();
    stack.push(1);
    stack.push(2);
    stack.top(); //2 리턴
    stack.pop(); //2 리턴
    stack.empty(); //false 리턴

1.push() 할 때 큐를 이용해 재정렬

import collections


class MyStack:
    def __init__(self):
        self.q = collections.deque()

    def push(self, x):
        self.q.append(x)
        # 요소 삽입 후 맨 앞에 두는 상태로 재정렬
        for _ in range(len(self.q) - 1):
            self.q.append(self.q.popleft())

    def pop(self):
        return self.q.popleft()

    def top(self):
        return self.q[0]

    def empty(self):
        return len(self.q) == 0

푸시를 구현할 때에 큐에 맨앞에를 길이만큼 돌려서 왼쪽의 숫자들을 맨 뒤로 보내서 스택처럼 구현을했다.

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

0개의 댓글

관련 채용 정보