250. 2018 KAKAO BLIND RECRUITMENT [1차] 셔틀버스
1) 어떤 전략(알고리즘)으로 해결?
2) 코딩 설명
- 나의 설계과정, 요새 느끼는 건데 이렇게 손코딩해놓고 따라치는게 구현이 더 좋다.
- 저 보라색 글씨가 버스 시간 결정에 중요 포인트 였다.
<내 풀이>
def solution(n, t, m, timetable):
answer = ''
bustime = 9*60
new_timetable = []
dict = {}
for time in timetable :
hour, min = map(int, time.split(":"))
new_timetable.append(hour*60 + min)
new_timetable.sort()
for i in range(n) :
if i>0 :
bustime+= t
peopleinbus = []
for time in range(len(new_timetable)) :
if new_timetable[time] !=-1 and new_timetable[time]<=bustime :
peopleinbus.append(new_timetable[time])
new_timetable[time] = -1
if len(peopleinbus) == m :
break
dict[bustime] = peopleinbus
for key in dict :
if len(dict[key]) < m :
dict[key] = sorted(dict[key])
answer = key
else :
answer = max(dict[key])-1
hours = str(answer//60)
if len(hours)==1 :
hours = "0"+hours
minutes = str(answer-((answer//60)*60))
if len(minutes)==1 :
minutes = "0"+minutes
answer = hours+":"+minutes
return answer
<반성 점>
- 문제만 이해하면 구현만 척척하면 되는 문제였다.
<배운 점>