LC 155. MinStack

제론·2024년 2월 2일
0

[Algorithm] LeetCode💡

목록 보기
1/14
post-thumbnail

getMin() 메서드가 있는 MinStack 구현하기

  • 배열로 일반 stack 구현

  • minStack도 같이 생성해서 insert시 작은 값이 제일 위로 쌓이도록 구현

  • getMin() 메서드에서는 minStack의 마지막 값 return

    • 값(val)이 들어오면 minsStack이 비어있지 않은지 확인한다.

    • 값과 minStack의 마지막 값을 비교해서 더 작은 값을 val에 할당한다.

    • minStack에 추가한다.

class MinStack:
    def __init__(self):
        self.stack = []
        self.minStack = []

    def push(self, val: int) -> None:
        self.stack.append(val)
        if self.minStack:
            val = min(self.minStack[-1], val)
        self.minStack.append(val)

    def pop(self) -> None:
        self.stack.pop()
        self.minStack.pop()

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

    def getMin(self) -> int:
        return self.minStack[-1]
profile
Software Developer

0개의 댓글