[Python으로 푸는 Leetcode]155. Min Stack

느린 개발자·2021년 1월 2일
0

Coding Test

목록 보기
17/21

📌Problem

Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.

  • push(x) -- Push element x onto stack.
  • pop() -- Removes the element on top of the stack.
  • top() -- Get the top element.
  • getMin() -- Retrieve the minimum element in the stack.

Example 1:

Input
["MinStack","push","push","push","getMin","pop","top","getMin"]
[[],[-2],[0],[-3],[],[],[],[]]

Output
[null,null,null,null,-3,null,0,-2]

Explanation
MinStack minStack = new MinStack();
minStack.push(-2);
minStack.push(0);
minStack.push(-3);
minStack.getMin(); // return -3
minStack.pop();
minStack.top();    // return 0
minStack.getMin(); // return -2

Constraints:

  • Methods pop, top and getMin operations will always be called on non-empty stacks.

leetcode 에서 풀기


📝Solution

class MinStack:

    def __init__(self):
        """
        initialize your data structure here.
        """
        self.__stack=[]
        

    def push(self, x: int) -> None:
        if self.__stack:
            self.__stack.append((x,min(x,self.__stack[-1][1])))  # (x,minimum)
        else:
            self.__stack.append((x,x))
        
        
                    
    def pop(self) -> None:
        if self.__stack:
            self.__stack.pop()
        

    def top(self) -> int:
        if self.__stack:
            return self.__stack[-1][0]
        

    def getMin(self) -> int:
        return self.__stack[-1][1]
            
        


# Your MinStack object will be instantiated and called as such:
# obj = MinStack()
# obj.push(x)
# obj.pop()
# param_3 = obj.top()
# param_4 = obj.getMin()
profile
남들보단 느리지만, 끝을 향해

3개의 댓글

comment-user-thumbnail
2024년 11월 26일

Cultivate the nice give good results, I just read through a small number of items on that blog not to mention In my opinion that this web site blog page might be proper significant as well as gained circles from awesome advice. Pinny

답글 달기
comment-user-thumbnail
2024년 12월 10일

オンカジでは、ルーレットやブラックジャックなど本格的なカジノゲームが自宅で気軽に楽しめます。初心者でも十分に楽しめるシンプルさが良いですね。 オンカジ

답글 달기
comment-user-thumbnail
어제

Many thanks for that publish as well as excellent ideas.. actually We additionally believe that effort is actually the most crucial ingredient of obtaining achievement. 카지노사이트 도메인

답글 달기