072. 우선순위 큐
Medium
바이브코딩
MCPDataStructureHeap
문제 설명
[문제]
우선순위 큐(최소 힙)를 제공하는 MCP 서버를 구현하시오.
우선순위 큐란, 넣은 값들 중 항상 가장 작은 값이 먼저 빠져나오는 자료구조이다. 예를 들어 30, 10, 20을 순서대로 넣어도 꺼낼 때는 가장 작은 10이 먼저 나온다. 넣는 순서와 무관하게 꺼내는 순서는 작은 값부터다.
[구현할 함수]
- push(value: int) -> int
값 하나를 큐에 넣는다. 넣은 뒤의 큐 크기(원소 개수)를 반환한다.
- pop() -> int
큐에서 가장 작은 값을 꺼내 제거하고 그 값을 반환한다. 큐가 비어 있으면 -1을 반환한다.
- peek() -> int
큐에서 가장 작은 값을 제거하지 않고 조회만 한다. 큐가 비어 있으면 -1을 반환한다.
- get_size() -> int
현재 큐에 들어 있는 원소 개수를 반환한다.
[입력·상태]
서버는 자신의 인스턴스 안에 정수 값들의 모음을 큐 형태로 유지한다. 초기 상태는 비어 있다.
[제약]
- 값은 정수다.
- pop, peek는 빈 큐에서 -1을 반환한다(예외를 던지지 않는다).
[힌트] 최소 힙 자료구조 사용 (Python: heapq / C++: std::priority_queue(greater 비교자) / Java: PriorityQueue)
[예시] (각 줄은 초기 빈 상태에서 시작)
push(10) -> 1 # 넣은 뒤 크기 1
pop() -> -1 # 빈 큐
peek() -> -1 # 빈 큐
get_size() -> 0 # 빈 큐
push(30), push(10), push(20) 후 pop() -> 10 # 가장 작은 값
로그인하고 풀기
AI가 자동 채점하고 즉시 정답·해설을 알려줘요. 무료.