https://school.programmers.co.kr/learn/courses/30/lessons/155651
코드
from heapq import heappop, heappush
def solution(book_time):
answer = 1
for i in range(len(book_time)):
book_time[i][0] = int(book_time[i][0].split(':')[0])*60 + int(book_time[i][0].split(':')[1])
book_time[i][1] = int(book_time[i][1].split(':')[0])*60 + int(book_time[i][1].split(':')[1]) +10
book_time.sort()
print(book_time)
heap = []
for s, e in book_time:
if not heap:
heappush(heap,e)
continue
if heap[0] <= s:
heappop(heap)
else:
answer += 1
heappush(heap,e)
return answer
시간을 모두 분으로 고쳐 저장한 후 힙을 이용해 대실 시작 시간을 기준으로 객실을 할당한다.
만약 현재 할당한 객실이 존재하지 않으면 객실을 할당하고, 현재 객실 중 가장 빠른 대실 종료 시각이 현대 대실 시작 시각보다 같거나 빠르면 해당 객실을 손님에게 할당한다. 반대로 느리면 새로운 객실을 추가한다.
'코딩테스트 > programmers (python)' 카테고리의 다른 글
Programmers / 2단계 / 줄 서는 방법 / python (0) | 2024.05.16 |
---|---|
Programmers / 2단계 / 미로 탈출 / python (0) | 2024.05.14 |
Programmers / 2단계 / 시소 짝꿍 / python (0) | 2024.05.10 |
Programmers / 3단계 / 마법의 엘리베이터 / python (0) | 2024.05.09 |
Programmers / 2단계 / 괄호 변환 / python / 2020 KAKAO BLIND RECRUITMENT (0) | 2024.05.08 |