Menu
CoddyTech

Implement Stack using Queues

쉬움큐스택python iconjava iconcpp iconc iconjs icon+10

저장소로 큐만 사용하는 후입선출 스택을 구현하세요. 큐는 뒤에 항목을 추가하고, 맨 앞 항목을 제거하거나 읽고, 크기를 반환할 수 있습니다. 스택은 push x(x를 맨 위에 놓기), pop(맨 위 항목을 제거하고 반환하기), top(맨 위 항목을 반환하고 그대로 두기), empty(스택이 비어 있는지 확인하기)를 지원합니다.

연산은 ops에 순서대로 주어지며, args[i]에는 push에 사용할 값이, 그 외의 경우에는 0이 들어 있습니다. 비어 있는 스택 하나에 연산을 실행하고, 각 연산마다 문자열 하나씩 반환하세요. push에는 "null", pop 또는 top에는 숫자를 문자열로, empty에는 "true" 또는 "false"를 반환합니다.

함수

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

제약 조건

  • 1 ≤ ops.length ≤ 1000
  • args.length == ops.length
  • 모든 ops[i]는 push, pop, top 또는 empty입니다.
  • -109 ≤ args[i] ≤ 109는 푸시 연산의 경우이고, 그 외의 연산에서는 args[i] == 0입니다.
  • pop과 top은 스택에 항목이 하나 이상 있을 때만 호출됩니다.

예제

입력
ops = ["push", "push", "top", "pop", "empty"]args = [1, 2, 0, 0, 0]
출력
["null", "null", "2", "2", "false"]
설명
2가 마지막에 들어갔으므로 맨 위에 있습니다. top과 pop은 모두 "2"를 반환합니다. 1은 아직 안에 있으므로 empty는 "false"를 반환합니다.
challenge icon

후속 질문

큐 하나만 유지하면서 작업을 push에서 pop으로 옮겨 push를 O(1)로 만들 수 있나요?

코드 초기화
def stackOps(ops, args):
    # 여기에 코드를 작성하세요

테스트 #1

테스트 #2

테스트 #3

인자들

ops = ["push", "push", "top", "pop", "empty"]
args = [1, 2, 0, 0, 0]

예상 출력

["null", "null", "2", "2", "false"]