티스토리 뷰

문제

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

  • push(x) : 요소 x를 큐 마지막에 삽입한다.
  • pop() : 큐 처음에 있는 요소를 제거한다.
  • peek() : 큐 처음에 있는 요소를 조회한다.
  • empty() ; 큐가 비어 있는지 여부를 리턴한다.

leetcode 225 - Implement Stack using Queues


코드

class MyStack:

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

    def push(self, x: int) -> None:
        self.q.append(x)

        # 요소 삽입 후 맨 앞에 두는 상태로 재정렬
        # popleft : pop(0)과 같지만, O(1)의 시간복잡도를 가짐 // pop(0)은 O(n)
        # 1,2,3,4,5로 입력했다면, 5,4,3,2,1로 정렬된다.
        for _ in range(len(self.q) - 1):
            self.q.append(self.q.popleft())

    def pop(self) -> int:
        return self.q.popleft()


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


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

# Your MyStack object will be instantiated and called as such:
# obj = MyStack()
# obj.push(x)
# param_2 = obj.pop()
# param_3 = obj.top()
# param_4 = obj.empty()
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함