선발대

[스파르타] 99클럽 2기 코테스터디 38일차 TIL / leet 921 본문

스파르타코딩클럽/활동 내용

[스파르타] 99클럽 2기 코테스터디 38일차 TIL / leet 921

신선한 스타트 2024. 6. 26. 23:28

Leetcode: 1845. Seat Reservation Manager (링크)

 

1845. Seat Reservation Manager

 

문제 설명

힙 자료구조를 사용할 수 있는지 확인하는 간단한 문제다.

처음에 문제를 잘못 이해해서 output으로 배열을 출력해야 하는 줄 알고, 왜 정답 처리가 안되는지 잠깐 헤맸었다.

근데 다시 읽어보니 그냥 reverse, unreverse 함수에서만 return 값을 설정해 주면 된다.

 

풀이 설명

파이썬 heapq 라이브러리의 사용법을 알고 있다면 쉽게 풀 수 있다. (import heapq)

  • heapq.heappush(heap, item) : heap에 item을 추가함
  • heapq.heappop(heap) : heap의 가장 작은 원소를 pop한 뒤 리턴함. 빈 값이라면 IndexError 호출됨. 
  • heapq.heapify(x) : 리스트 x를 heap으로 변환

 

class SeatManager:

    def __init__(self, n: int):
        self.heap = list(range(1, n+1))
        heapq.heapify(self.heap)

    def reserve(self) -> int:
        return heapq.heappop(self.heap)
        
    def unreserve(self, seatNumber: int) -> None:
        return heapq.heappush(self.heap, seatNumber)


# Your SeatManager object will be instantiated and called as such:
# obj = SeatManager(n)
# param_1 = obj.reserve()
# obj.unreserve(seatNumber)

오늘 미들러 풀이 끝!

 

Comments