225. Implement Stack using Queues Python3

Yelim Kim·2021년 10월 1일
0

Python Algorithm Interview

목록 보기
23/36
post-thumbnail

Problem

Implement a last-in-first-out (LIFO) stack using only two queues. The implemented stack should support all the functions of a normal stack (push, top, pop, and empty).

Implement the MyStack class:

void push(int x) Pushes element x to the top of the stack.
int pop() Removes the element on the top of the stack and returns it.
int top() Returns the element on the top of the stack.
boolean empty() Returns true if the stack is empty, false otherwise.
Notes:

You must use only standard operations of a queue, which means that only push to back, peek/pop from front, size and is empty operations are valid.
Depending on your language, the queue may not be supported natively. You may simulate a queue using a list or deque (double-ended queue) as long as you use only a queue's standard operations.

Example 1:

Input
["MyStack", "push", "push", "top", "pop", "empty"]
[[], [1], [2], [], [], []]
Output
[null, null, null, 2, 2, false]

Explanation

MyStack myStack = new MyStack();
myStack.push(1);
myStack.push(2);
myStack.top(); // return 2
myStack.pop(); // return 2
myStack.empty(); // return False

Constraints:

1 <= x <= 9
At most 100 calls will be made to push, pop, top, and empty.
All the calls to pop and top are valid.

My code

class MyStack:

    def __init__(self):
        self.queue = []

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

    def pop(self) -> int:
        
        int = self.queue[-1]
        self.queue.remove(int)
        return int

    def top(self) -> int:
        int = self.queue[-1]
        return int

    def empty(self) -> bool:
        if self.queue:
            return False
        else:
            return True

Review

[실행 결과]
Runtime 24 ms
Memory 14.5 MB
[접근법]
그냥... 하라는대로... 하면...
[느낀점]
이게 되나? 했는데 됐다. 신기함... 처음으로 한번에 통과한 것 같음....

profile
뜬금없지만 세계여행이 꿈입니다.

0개의 댓글