
[LeetCode] Seat Reservation Manager

1부터 n까지의 좌석 중 작은 수부터 예약 좌석 배정하는 문제
minHeap을 초기화하고, 1부터 i까지의 정수를 추가한다.reserve()가 호출되면, 최소 힙을 poll()하면서 현재 가장 작은 수의 좌석을 배정한다.unreserve(int seatNumber)가 호출되면, seatNumber의 예약이 취소된 것이므로, 힙에 추가한다.class SeatManager {
PriorityQueue<Integer> minHeap;
public SeatManager(int n) {
minHeap = new PriorityQueue<>();
for(int i = 1; i <= n; i++) {
minHeap.add(i);
}
}
public int reserve() {
return minHeap.poll();
}
public void unreserve(int seatNumber) {
minHeap.add(seatNumber);
}
}