https://school.programmers.co.kr/learn/courses/30/lessons/155651
주의할 점으로 한 번 사용한 객실은 퇴실 시간을 기준으로 10분간 청소를 하고 다음 손님들이 사용할 수 있습니다. 조건을 확인해야 한다.
from collections import deque
def solution(book_time):
room = []
book_time = [[int(b[0][:2])*60+int(b[0][-2:]), int(b[1][:2])*60+int(b[1][-2:])] for b in book_time]
book_time = deque(sorted(book_time, key=lambda x: (x[0], x[1])))
p = book_time.popleft()
room.append(p)
while book_time:
p = book_time.popleft()
rl = len(room)
can_book = []
for idx in range(rl):
out_time = room[idx][1]+10
in_time = p[0]
if out_time <= in_time:
can_book.append([idx, p, in_time-out_time])
if can_book:
can_book = sorted(can_book, key=lambda x: x[2])
room[can_book[0][0]] = can_book[0][1]
else:
room.append(p)
return len(room)
'Coding Test > 프로그래머스' 카테고리의 다른 글
[프로그래머스] / [Level 2] / [Python] 시소 짝꿍 (0) | 2023.07.14 |
---|---|
[프로그래머스] / [Level 2] / [Python] 마법의 엘레베이터 (0) | 2023.07.11 |
[프로그래머스] / [Level 2] / [Python] 무인도 여행 (0) | 2023.06.28 |
[프로그래머스] / [Level 2] / [Python] 연속된 부분 수열의 합 (0) | 2023.06.27 |
[프로그래머스] / [Level 1] / [Python] 가장 가까운 같은 글자 (0) | 2023.06.27 |