FIFO 동작과 빈 큐 경계를 직접 다루면 BFS나 작업 스케줄링에서 큐를 자연스럽게 선택할 수 있습니다. 리스트 pop(0)의 성능 문제도 함께 익힙니다.
명령 목록을 순서대로 처리하세요. ['push', 값]은 뒤에 삽입, ['pop']은 앞 값을 제거해 결과에 추가, ['peek']은 앞 값을 제거하지 않고 결과에 추가합니다. 빈 큐에서 pop 또는 peek하면 None을 추가합니다.
process_queue(operations)
명령 m개 기준 시간 O(m), 공간 O(m)
실행하면 아래 순서대로 채점합니다. print() 출력도 이 순서대로 쌓입니다.
| # | 이름 | operations | 기대값 |
|---|---|---|---|
| 1 | FIFO 처리 | [["push", 3], ["push", 7], ["peek"], ["pop"], ["pop"]] | [3, 3, 7] |
| 2 | 빈 큐 | [["pop"], ["peek"]] | [None, None] |
| 3 | 다시 삽입 | [["push", 1], ["pop"], ["push", 2], ["peek"]] | [1, 2] |
| 4 | 연속 조회 | [["push", 4], ["peek"], ["peek"], ["pop"], ["peek"]] | [4, 4, 4, None] |
| 5 | 삽입과 제거 혼합 | [["push", 5], ["push", 6], ["pop"], ["push", 7], ["pop"], ["pop"]] | [5, 6, 7] |
Python 표준 라이브러리는 사용할 수 있습니다. 함수 이름과 매개변수는 제시된 형태를 유지하세요.
pop(0)은 O(n)이므로 collections.deque의 popleft()를 사용하세요.코드를 작성하고 실행하면 5개의 테스트가 각각 표시됩니다.