IT/알고리즘

[프로그래머스 Python] 호텔 대실

와잉 2025. 2. 23. 17:18

Level 2

https://school.programmers.co.kr/learn/courses/30/lessons/155651

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

import heapq
def chg_time(x, s):
    h, m = map(int, x.split(":"))
    if s: #체크아웃
        if m+10 >= 60: #청소기간 더해주기
            h+=1
            m-=50
        else:
            m+=10
    return h*100+m
def solution(book_time):
    answer = 0
    book_time.sort() #정렬
    outQ = [0]
    for i, o in book_time:
        iTime = chg_time(i, False)
        oTime = chg_time(o,True)
        if iTime >= outQ[0]: #체크인시간이 제일 빠른 체크아웃 시간보다 늦거나 같은 경우
            heapq.heappop(outQ) 
        heapq.heappush(outQ, oTime)
        answer = max(answer, len(outQ))
    return answer

최소 객실 수를 구하는 문제로 heapq를 사용해주었다.

 

반응형