본문 바로가기

카테고리 없음

Leetcode my calendar III

from sortedcontainers import SortedDict


class MyCalendarThree:
  def __init__(self):
    self.timeline = SortedDict()

  def book(self, start: int, end: int) -> int:
    self.timeline[start] = self.timeline.get(start, 0) + 1
    self.timeline[end] = self.timeline.get(end, 0) - 1

    ans = 0
    activeEvents = 0

    for count in self.timeline.values():
      activeEvents += count
      ans = max(ans, activeEvents)

문제

달력에 k개의 예약이 존재하는 가장 큰 정수를 반환하게됩니다.

 

풀이 방법

연결리스트를 파이썬리스트로 만들고 나서 해당 리스트의 인덱스를 1부터 2씩 증가시켜 스왑하는 방식으로 구현했다.

그리고 나서 스왑된 배열을 다시 배열리스트로 만들어 답을구했다.

 

느낀점

연결리스트에 대하여 조금더 알게 되었습니다.