Menu
CoddyTech

Implement Queue Using Stacks

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

두 개의 스택만 저장 공간으로 사용하는 선입선출 큐를 구현하세요. 스택은 항목을 맨 위에 추가하고, 맨 위 항목을 제거하고 읽으며, 비어 있는지 확인하는 작업만 할 수 있습니다. 큐는 push x(x를 뒤에 추가), pop(맨 앞 항목을 제거하고 반환), peek(맨 앞 항목 반환), empty(큐가 비어 있는가?)를 지원합니다.

연산은 ops에 순서대로 주어지며, args[i]에는 push의 값이 들어 있고 다른 모든 연산에는 0이 들어 있습니다. 비어 있는 상태로 시작하는 하나의 큐에 연산을 실행하고, 각 연산에 대해 문자열 하나를 반환하세요. push에는 "null", pop 또는 peek에는 숫자를 텍스트로 표현한 값, empty에는 "true" 또는 "false"를 반환합니다.

함수

queueOps(ops: string-array, args: integer-array) → string-array
opsstring-array
연산이 실행되는 순서
argsinteger-array
각 푸시의 값, 다른 모든 연산의 경우 0
반환값string-array
연산당 답변 하나를 텍스트로

제약 조건

  • 1 ≤ ops.length ≤ 2000
  • args.length == ops.length
  • 각 ops[i]는 push, pop, peek 또는 empty입니다.
  • -109 ≤ args[i] ≤ 109는 push 연산의 경우이고, args[i] == 0은 다른 모든 연산의 경우입니다.
  • pop과 peek은 큐에 항목이 하나 이상 있을 때만 호출됩니다.

예제

입력
ops = ["push", "push", "peek", "pop", "empty"]args = [1, 2, 0, 0, 0]
출력
["null", "null", "1", "1", "false"]
설명
1을 넣은 다음 2를 넣으면 맨 앞은 1이므로 peek와 pop은 모두 "1"을 반환합니다. 2는 여전히 안에 있으므로 empty는 "false"를 반환합니다.

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

challenge icon

후속 질문

다른 연산들의 분할 상환 경계를 깨뜨리지 않으면서 O(1)에 가장 최근 항목을 반환하는 back 연산을 어떻게 추가할 수 있을까요?

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

케이스 1

케이스 2

케이스 3

입력

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

기대값

["null", "null", "1", "1", "false"]