Menu
CoddyTech

Min Stack

보통스택python iconjava iconcpp iconc iconjs icon+10

일반적인 push, pop, top 외에도 getMin으로 스택에 들어 있는 가장 작은 값을 알려 줄 수 있는 스택을 설계하세요. 네 가지 연산은 각각 O(1) 시간에 실행되어야 합니다.

연산은 순서대로 ops에 주어지며, args[i]에는 push의 값이 들어 있고 그 외의 모든 연산에는 0이 들어 있습니다. 처음에 비어 있는 하나의 스택에 연산을 실행하고, 연산마다 문자열 하나를 반환하세요. push와 pop에는 "null"을, top과 getMin에는 숫자를 문자열로 반환하세요.

함수

minStackOps(ops: string-array, args: integer-array) → string-array
opsstring-array
연산이 실행되는 순서대로
argsinteger-array
각 push의 값, 그 외 모든 연산에는 0
반환값string-array
연산당 하나의 답변, 텍스트로

제약 조건

  • 1 ≤ ops.length ≤ 3000
  • args.length == ops.length
  • 각 ops[i]는 push, pop, top 또는 getMin입니다.
  • -231+1 ≤ args[i] ≤ 231-1는 push의 경우이고, 다른 모든 연산의 경우에는 args[i] == 0입니다.
  • pop, top 및 getMin은 스택에 값이 하나 이상 있을 때만 호출됩니다.

예제

입력
ops = ["push", "push", "push", "getMin", "pop", "top", "pop", "getMin"]args = [4, 1, 7, 0, 0, 0, 0, 0]
출력
["null", "null", "null", "1", "null", "1", "null", "4"]
설명
스택에는 아래에서 위로 4, 1, 7이 있으므로 가장 작은 값은 1입니다. 7을 꺼내면 1이 맨 위에 남습니다. 1도 꺼내면 4만 남으므로 최솟값은 다시 4가 됩니다.

lock icon제출 시 숨은 테스트 +16개

challenge icon

후속 질문

최솟값을 상각 O(1) 시간에 알려 주는 선입선출 큐를 만들 수 있나요?

코드 초기화
def minStackOps(ops, args):
    # 여기에 코드를 작성하세요
테스트 케이스

케이스 1

케이스 2

케이스 3

입력

ops = ["push", "push", "push", "getMin", "pop", "top", "pop", "getMin"]
args = [4, 1, 7, 0, 0, 0, 0, 0]

기대값

["null", "null", "null", "1", "null", "1", "null", "4"]