호텔 대실

gidori·2024년 5월 16일
0

프로그래머스(호텔 대실)

문제


  • 위와 같이 호텔 대실 시간대가 주어질 때, 모든 사람을 수용하기 위해 최소로 필요한 방 개수를 구하라.
  • 단, 퇴실 후 청소를 위해 10분 간 입실할 수 없다.

방법

  1. HH:MM으로 된 시간을 MM으로 통일시켜 계산이 용이하도록 해준다. (+ 청소시간 10분도 추가)
  2. 모든 시간을 탐색하며 겹치는 입/퇴실 시간의 최댓값을 찾는다. (완전탐색)

코드

def solution(book_time):
    reg_time = []
    
    for bt in book_time:
        
        h, m = bt[0].split(':')
        s = int(h)*60 + int(m)
        
        h, m = bt[1].split(':')
        e = int(h)*60 + int(m) + 10
        
        reg_time.append([s, e])
    
    # 완탐.
    result = 0
    for case in range(0, 24*60):
        cnt = 0
        
        for r_t in reg_time:
            if r_t[0] <= case < r_t[1]:
                cnt +=1
        result = max(result, cnt)
    
    return result

0개의 댓글