문제1731--heap 구현하기

1731: heap 구현하기

실행시간 제한: 1 Sec  메모리사용 제한: 128 MB
제출: 144  통과: 77
[제출] [채점기록] [묻고답하기]

문제 설명

 

Heap을 구현한 다음, 다음의 명령을 수행하는 프로그램을 작성하라.

  • PUSH x : 숫자 x를 heap에 추가한다. 여기서 x는 1이상 32767이하의 양의 정수다.
  • POP : heap에 저장된 숫자 중 가장 큰 숫자를 반환하고. 해당 숫자를 제거한다. 만약 heap에 같은 크기의 숫자가 여럿 있으면 이 중 하나를 제거한다.
  • SIZE : heap의 크기를 반환한다.
  • CLEAR : heap의 크기를 0으로 만든다.
  • END : 프로그램을 종료한다.

입력 설명

 

입력은 여러개의 명령으로 주어진다.

각 명령에 예시는 Sample Input을 참조한다.

출력 설명

 

PUSH, CLEAR 명령에 대해서는 아무것도 출력하지 않는다.

POP 명령에 대해서는 heap에 저장된 숫자 중 가장 큰 숫자를 출력한다.

SIZE 명령에 대해서는 heap의 크기를 한 줄에 출력한다.

END의 경우는 프로그램을 종료하며 어떠한 것도 출력하지 않는다.

POP 명령을 수행할 때 할 때 heap의 크기가 0일 경우에는 "EMPTY"를 출력하고, heap의 크기는 0으로 유지한다.

입력 예시 Copy

PUSH 10
PUSH 40
POP
PUSH 25
PUSH 80
PUSH 70
POP
POP
CLEAR
POP
SIZE
END

출력 예시 Copy

40
80
70
EMPTY
0

출처/분류