[1스4코2파] # 206 LeetCode 155. Min Stack

gunny·2023년 7월 29일
0

코딩테스트

목록 보기
207/530

[1스4코2파] 1명의 스위프트 개발자와 4명의 코틀린 개발자, 2명의 파이썬 개발자코딩 테스트 서막 : 1스4코1파

Rule :

하루에 1문제씩 풀기.
한 문제당 30분씩은 고민하기.
왜 그렇게 풀었는지 공유하기.
하루라도 놓친다면 벌금은 1,000원
백준 플래티넘, 프로그래머스 4단계, 개발자 탈퇴 시 모임 탈퇴 가능

START :

[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일차)

Today :

2023.07.29 [206일차]
stack
155. Min 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]

증빙

여담

마지막 스택 문제 완!

profile
꿈꾸는 것도 개발처럼 깊게

1개의 댓글

comment-user-thumbnail
2023년 7월 29일

글 잘 봤습니다.

답글 달기