하루에 1문제씩 풀기.
한 문제당 30분씩은 고민하기.
왜 그렇게 풀었는지 공유하기.
하루라도 놓친다면 벌금은 1,000원
백준 플래티넘, 프로그래머스 4단계, 개발자 탈퇴 시 모임 탈퇴 가능
[3코1파] 2023.01.04~ (206차)
[4코1파] 2023.01.13~ (198일차)
[1스4코1파] 2023.04.12~ (109일차)
[1스4코2파] 2023.05.03 ~ (87일차)
2023.07.29 [206일차]
stack
155. Min Stack
https://leetcode.com/problems/min-stack/description/
문제 설명
stack 구현하기 push, pop, top, stack에서 가장 작은 원소 return 하는 getMin 까지
문제 풀이 방법
getMin 메소드를 위해서 minStack을 하나 더 만들어서,
push 할 때 들어오는 val 값고 minStack을 비교해서 minStack은 최소값을 계속 쌓는 식으로 구현한다.
pop은 물론 stack과 minStack을 같이 pop 해준다.
내 코드
class MinStack:
def __init__(self):
self.stack = []
self.minStack = []
def push(self, val: int) -> None:
self.stack.append(val)
val = min(val, self.minStack[-1] if self.minStack else 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]
증빙
여담
마지막 스택 문제 완!
글 잘 봤습니다.