onlybooks / python-algorithm-interview

<파이썬 알고리즘 인터뷰> 95가지 알고리즘 문제 풀이로 완성하는 코딩 테스트
1.21k stars 325 forks source link

692pg 카카오 셔틀버스 문제 입출력 예제 #118

Open Rhyankwon opened 3 years ago

Rhyankwon commented 3 years ago

안녕하세요!

692페이지에 보면 입출력 예제 2번째에, timetable = ["09:10", "09:09", "08:00"], answer = "09:09'로 돼있습니다. 그런데 지금 총 셔틀탑승 가능 인원수가 n * m = 4명이고 timetable에는 총 3명밖에 없으므로 가장 마지막 차량이 출발하는 09:10이 가장 늦은 시간의 answer로 나와야 하는게 맞지 않나요?


class Solution:
    def shuttleBus(self, n, t, m, timetable):
        times = []
        for i in timetable:
            times.append(int(i[:2])*60 + int(i[3:]))
        times.sort()
        time = 540 + t * (n-1)
        if m*n > len(times):
            return str(time//60).zfill(2) + ':' + str(time%60).zfill(2)
        elif m*n <= len(times):
            new_time = times[m*n-1] - 1
            if new_time > time:
                return str(time//60).zfill(2) + ':' + str(time%60).zfill(2)
            else :
                return str(new_time//60).zfill(2) + ':' + str(new_time%60).zfill(2)

m * n(탑승 가능 인원수)이 timetable의 길이(타는 사람의 총원)보다 큰 경우는 따로 계산해야 하는게 아닌가 궁금합니다.

likejazz commented 3 years ago

안녕하세요. 버스는 9:00 부터 출발합니다. 그리고 두 번째 예제는 10분 주기로 두 명의 탑승객을 태워 두 번 출발합니다. 따라서 버스에는 다음과 같이 탑승합니다.

  1. 09:00 출발 08:00 탑승
  2. 09:10 출발 09:09, 09:10 탑승

따라서 탑승 할 수 있는 가장 늦은 시각은 09:10 보다 더 빠른 09:09가 됩니다.

Rhyankwon commented 3 years ago

항상 친절한 답변 감사합니다:) 그 부분을 고려못했네요!