https://programmers.co.kr/learn/courses/30/lessons/17678
1. 전체 코드
import re
from collections import deque
def solution(n, t, m, timetable):
for idx, i in enumerate(timetable):
h, mi = re.split('[^\w]', i)
time = int(h) * 60 + int(mi)
timetable[idx] = time
timetable.sort()
q = deque(timetable)
waiting = deque()
for i in range(540, 540 + n * t, t):
while q and q[0] <= i:
waiting.append(q.popleft())
if i == (540 + n * t) - t:
last = list(waiting)[:]
last_time = i
for _ in range(m):
if waiting:
waiting.popleft()
if len(last) < m:
ans = last_time
else:
last.sort()
ans = last[m-1]-1
hour = ans // 60
minute = ans - (hour * 60)
return str(hour).zfill(2) + ':' + str(minute).zfill(2)