버스가 오는 시간이 주어지고, 대기하고 있는 사람이 있다면 최대 m명만큼 타고 갈 수 있다. 콘은 '가장 늦게' 도착해야 한다. 즉 '막차'에서 마지막 사람으로 타야 한다. 문제를 푸는 과정은 다음과 같다.
def get_bus(n, t):
buses = []
for i in range(0, n):
buses.append(9*60 + t*i)
return buses
def solution(n, t, m, timetable):
buses = get_bus(n, t)
queue = []
for person in timetable:
hour, min = map(int, person.split(':'))
queue.append(hour*60+min)
queue.sort()
last_bus = 0
for bus in buses:
if buses[-1] == bus:
last_bus = bus
break
for i in range(m):
if queue[0] <= bus:
queue.pop(0)
else:
break
queue = [x for x in queue if x <= last_bus]
if len(queue) < m:
kon = last_bus
else:
kon = queue[m-1]-1
h = kon//60
m = kon - h*60
h = str(h)
m = str(m)
if len(h) == 1: h = '0' + h
if len(m) == 1: m= '0' + m
kon = h + ':' + m
return kon