본문 바로가기
코드

Min Stack

by ehei 2020. 2. 12.

https://leetcode.com/problems/min-stack/

 

스택을 구현하는 문제. 쉽다.

class MinStack:

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

    def push(self, x: int) -> None:
        self.__min = min( self.__min, x )
        self.__stack.insert( 0, x )
        

    def pop(self) -> None:
        stack = self.__stack
        value = stack[ 0 ]
        self.__stack = stack[ 1 : ]
        
        if value == self.__min:
            self.__min = float( 'inf' )
            
            for value in self.__stack:
                self.__min = min( value, self.__min )
        

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

    def getMin(self) -> int:
        return self.__min
        


# 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()

 

 

 

 

 

 

 

'코드' 카테고리의 다른 글

django 과제  (0) 2020.02.22
Valid Parentheses  (0) 2020.02.12
Target Sum  (0) 2019.12.04
Clone Graph  (0) 2019.11.26
Perfect Squares  (0) 2019.11.25