문제 설명 및 제한사항
아이디어 및 해결 방법
코드
from queue import PriorityQueue
def to_int(time):
h, m = map(int, time.split(':'))
return 60 * h + m
def solution(book_time):
book_time = [(to_int(s), to_int(e) + 10) for s, e in book_time]
timepoints = PriorityQueue()
# MinHeap에 (시작점, +1), (끝점, -1) 형태로 저장합니다.
for s, e in book_time:
timepoints.put((s, +1))
timepoints.put((e, -1))
curr_cnt, max_cnt = 0, -1
while not timepoints.empty():
t, diff = timepoints.get()
curr_cnt += diff
max_cnt = max(curr_cnt, max_cnt)
return max_cnt
Python
복사
출처
프로그래머스 코딩테스트 연습 https://school.programmers.co.kr/learn/challenges