def solution(n, t, m, timetable):
crew_time = []
for time in timetable:
crew_time.append(get_time(time))
crew_time.sort()
bus_time = []
for i in range(n):
bus_time.append(get_bus_time(t, i))
my_time = 0
temp = 0
for bus in bus_time:
my_time = bus
max_people = m
for i in range(temp, len(crew_time)):
if bus >= crew_time[i] and max_people:
max_people -= 1
temp += 1
if max_people == 0:
my_time = crew_time[i] - 1
answer = change_time(my_time)
return answer
def get_time(time):
hour = int(time[:2]) * 60
minute = int(time[3:])
return hour + minute
def get_bus_time(t, i):
hour = 9*60
return hour+t*i
def change_time(time):
hour = str(time // 60)
if len(hour) == 1:
hour = '0' + hour
minute = str(time % 60)
if len(minute) == 1:
minute = '0' + minute
return hour + ':' + minute
2018 카카오 블라인드 1차 - 4번
1. timetable의 crew들의 도착시간을 분으로 바꾼다(get_time) 이후, sort()
2. bus의 도착시간도 분으로 바꾼다(get_bus_time)
3. my_time을 항상 bus로 시작을 하고, 만약 승객이 마지막 손님이면 그 손님의 시간 -1 을 my_time으로 설정
4. my_time을 string으로 바꿔준다(change_time) 이후, return
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] - 프렌즈4블록 (파이썬) (0) | 2022.01.30 |
---|---|
[프로그래머스] - 뉴스 클러스터링 (파이썬) (0) | 2022.01.30 |
[프로그래머스] - 캐시 (파이썬) (0) | 2022.01.30 |
[프로그래머스] - 다트 게임 (파이썬) (0) | 2022.01.30 |
[프로그래머스] - 비밀지도 (파이썬) (0) | 2022.01.30 |