[Programmers/프로그래머스] 2018 KAKAO BLIND RECRUITMENT [1차 코딩테스트]
- [Lv. 1] 비밀 지도
- [Lv. 1] 다트 게임
- [Lv. 2] 캐시
- [Lv. 3] 셔틀버스
- [Lv. 2] 뉴스 클러스터링
- [Lv. 2] 프렌즈4블록
- [Lv. 3] 추석 트래픽
📌 문제
![](https://velog.velcdn.com/images/sihoon_cho/post/0a012de0-bf33-4450-8c75-5f1abbf5b117/image.png)
📝 입력 형식
![](https://velog.velcdn.com/images/sihoon_cho/post/ada6d690-ddfd-4acd-89d6-58c066d1308b/image.png)
💻 출력 형식
![](https://velog.velcdn.com/images/sihoon_cho/post/08315e87-6487-4122-b10f-ea7348d0d81d/image.png)
📖 입출력 예제
![](https://velog.velcdn.com/images/sihoon_cho/post/313ec071-400b-4057-a0d8-ef3be4184d5d/image.png)
📌 풀이
def str2min(time):
hour, minute = map(int, time.split(':'))
return hour * 60 + minute
def min2str(time):
hour = str(time // 60).zfill(2)
minute = str(time % 60).zfill(2)
return hour + ':' + minute
def solution(n, t, m, timetable):
bus_table = [9 * 60 + t * i for i in range(n)]
timetable = sorted([str2min(time) for time in timetable])
i = 0
answer = 0
for bus_time in bus_table:
passengers = 0
while passengers < m and i < len(timetable) and timetable[i] <= bus_time:
i += 1
passengers += 1
if passengers < m:
answer = bus_time
else:
answer = timetable[i - 1] - 1
return min2str(answer)