목차
반응형
문제
https://leetcode.com/problems/implement-stack-using-queues/
큐를 사용해서 스택을 구현해야 한다.
push, top, pop, empty 기능을 구현하면 된다.
풀이
책 풀이
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
책에서는 큐를 데크로 선언했다. 방금 추가한 요소를 맨 앞에 두기 위해 push에서 재정렬을 해준다.
나머지는 데크의 기본 연산으로 구할 수 있다.
참고한 책 : 파이썬 알고리즘 인터뷰
반응형
'Study > Algorithm' 카테고리의 다른 글
[LeetCode] #622. Design Circular Queue (python) (0) | 2022.03.09 |
---|---|
[LeetCode] #232. Implement Queue using Stacks (python) (0) | 2022.02.24 |
[LeetCode] #739. Daily Temperatures (python) (0) | 2022.02.24 |
[LeetCode] #316. Remove Duplicate Letters (python) (0) | 2022.02.24 |
[LeetCode] #20. Valid Parentheses (python) (0) | 2022.02.24 |