09:00
부터 총 n
회 t
분 간격으로 역에 도착하며, 하나의 셔틀에는 최대 m
명의 승객이 탈 수 있다.09:00
에 도착한 셔틀은 자리가 있다면 09:00
에 줄을 선 크루도 탈 수 있다.콘이 셔틀을 타고 사무실로 갈 수 있는 도착 시간 중 제일 늦은 시각을 구하여라.
00:01
에서 23:59
사이이다.콘이 무사히 셔틀을 타고 사무실로 갈 수 있는 제일 늦은 도착 시각을 출력한다. 도착 시각은 HH:MM 형식이며, 00:00
에서 23:59
사이의 값이 될 수 있다.
def solution(n, t, m, timetable):
answer = ''
timetable.sort()
bus = [[540 + ( t * x), 0, 0] for x in range(n)]
num = 0 # bus 번호
for time in [getTimeNum(x) for x in timetable]:
while num < len(bus) and (time > bus[num][0] or bus[num][1] >= m):
num += 1
if num == len(bus): break
bus[num][1] += 1
bus[num][2] = time
return getTimeStr(bus[-1][0]) if bus[-1][1] < m else getTimeStr(bus[-1][2] - 1)
def getTimeNum(time):
hour, minute = map(int, time.split(":"))
return hour * 60 + minute
def getTimeStr(time):
return '%02d:%02d' % (time // 60, time % 60)