class MinStack:
def __init__(self):
self.stack = []
self.minStack = []
self.min = 2**31
def push(self, val: int) -> None:
self.stack.append(val)
self.min = self.min if val > self.min else val
self.minStack.append(self.min)
def pop(self) -> None:
num = self.minStack.pop()
self.stack.pop()
if not self.minStack :
self.min = 2**31
if num == self.min :
self.min = min(self.minStack)
def top(self) -> int:
return self.stack[-1]
def getMin(self) -> int:
return self.minStack[-1]
음 상위 47퍼... min 함수때문이라 생각하고 로직을 좀 더 생각해봤다. 굳이 min 할 필요없이 minStack의 마지막 값을 가져오면 되는거잖아?
class MinStack:
def __init__(self):
self.stack = []
self.minStack = []
self.min = 2**31
def push(self, val: int) -> None:
self.stack.append(val)
self.min = self.min if val > self.min else val
self.minStack.append(self.min)
def pop(self) -> None:
num = self.minStack.pop()
self.stack.pop()
if not self.minStack :
self.min = 2**31
if num == self.min :
self.min = self.minStack[-1]
def top(self) -> int:
return self.stack[-1]
def getMin(self) -> int:
return self.minStack[-1]
Goooood~~~
'컴퓨터 > 코테' 카테고리의 다른 글
릿코드200 - 섬의 수 (0) | 2021.08.09 |
---|---|
릿코드62 - Unique paths [dp] (0) | 2021.08.07 |
릿코드 2 - 두 수 더하기 (리스트) (0) | 2021.08.05 |
릿코드 20 - 괄호 짝 맞추기 (0) | 2021.08.05 |
릿코드 104 - 트리의 가장 깊은 층 (0) | 2021.08.04 |