본문 바로가기
프로그래머스/2단계

(Python/LV2) 호텔 대실

by windy7271 2023. 2. 7.
728x90
반응형

문제출처: 

 

풀이:

def solution(book_time):

    time = [0 for i in range(60*24)]

    for i in book_time:
        start, end = i
        start_left, start_right = int(start[:2]),int(start[3:])
        end_left, end_right = int(end[:2]),int(end[3:])
        left = start_left * 60 + start_right
        right = end_left * 60 + end_right
        for i in range(left,right):
            time[i] += 1
    
    return max(time)
    
몇개 더 틀림

 

중복되는 시간만큼은 무조건 필요하므로 그 갯수가 최댓값이라고 생각했다. 

청소시간 10분은 생각하지 못했다.

 

def solution(book_time):

    time = [0 for i in range(60*24)]

    for start,end in book_time:
        start = 60 * int(start[:2]) + int(start[3:])
        end = 60 * int(end[:2]) + int(end[3:]) + 10
        if end > 1439:
            end = 1439
        for i in range(start,end):
            time[i] += 1
    return max(time)

분 단위로 계산하기 위해 start 와 end 로 나눔

end 에 청소시간 10분까지 넣어준다.

 

23시59분까지니깐 넘어가면 1439로 해준다.

 

 최댓값 리턴

반응형

댓글