티스토리 뷰

728x90

 

⚡ 2018 카카오 공채 1차 코테

 

안풀려서 구글링함 🤯 

난 멍충이마냥 이렇게 시간 변환하고 앉아있었는데 ^^;;;; 이러고 그 다음부터 어케 할지 모름

    for i in range(n):  # n: 셔틀 운행 횟수
        hh = 9 + (t*i) // 60
        mm = (t*i) % 60
        time = ''
        if len(str(hh)) == 1:
            time += "0" + str(hh) + ":"
        else:
            time += str(hh) + ":"
        if len(str(mm)) == 1:
            time += "0" + str(mm)
        else:
            time += str(mm)

구글링해보니 "HH:MM"의 시간을 모두 분으로 변환해서 풀었다. 이걸 어떻게 생각하지 ?! 진짜 대박이다
( ex. 9:10분 -> 9*60 + 10 = 550분 )

그리고 앞에 0 붙이는거 zfill 쓰면 된다 !!!!!!!!!!

 

 

코드

def solution(n, t, m, timetable):
    answer = 0
    
    timetable = [int(time[:2])*60+int(time[3:]) for time in timetable]  # 시간 -> 분 change
    timetable.sort()
    
    busTime = [9*60+t*i for i in range(n)]  # 버스 시간
    
    i = 0  # 버스에 탈 크루의 인덱스
    for bt in busTime:  # 버스 도착 시간을 순회하면서
        cnt = 0  # 버스에 타는 크루 수
        while cnt<m and i<len(timetable) and timetable[i]<=bt:
            i += 1
            cnt += 1
        if cnt<m:  # 버스에 자리 남았으면 버스타임에 내가 타면 됨
            answer = bt
        else:  # 버스에 탈 자리 없으면 맨 마지막 크루보다 1분전에 도착
            answer = timetable[i-1]-1
            
    return str(answer//60).zfill(2)+":"+str(answer%60).zfill(2)

 

 

 

참고 블로그

https://mjmjmj98.tistory.com/121

 

[프로그래머스/Python파이썬] 셔틀버스(2018 카카오 코딩테스트 1차)

문제 링크: programmers.co.kr/learn/courses/30/lessons/17678 코딩테스트 연습 - [1차] 셔틀버스 10 60 45 ["23:59","23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:5..

mjmjmj98.tistory.com

 

댓글