세용용용용 2023. 9. 28. 19:20

 

나의 코드

def solution(s):
    answer = 0

    # 다 분으로 변경해주기
    for i in range(len(s)):
        #print(s[i])
        s[i][0] = int(s[i][0].split(':')[0])*60 + int(s[i][0].split(':')[1])
        s[i][1] = int(s[i][1].split(':')[0])*60 + int(s[i][1].split(':')[1])
    # 순서대로 입실해야되니까 정렬
    s = sorted(s, key=lambda s:s[0])
   
    # 방 딕셔너리 생성
    room_dict = {}
    # 초기 방번호
    room_number = 1
    for i in s:
        # 아무도 입실하지 않았으면 방추가 입실
        if len(room_dict) == 0:
            room_dict[room_number] = i[1]+10
            room_number+=1
        else:
            # 아직 모두 방을 사용중이면 방하나 추가 입실
            if i[0] < min(room_dict.values()):
                room_dict[room_number] = i[1]+10
                room_number += 1
            # 사용이 끝난 방이 있으면 그 방 입실
            else:
                room_dict = dict(sorted(room_dict.items(), key=lambda room_dict: room_dict[1]))
                room_dict[list(room_dict)[0]] = i[1]+10        
        #print(i)
    #print(room_dict)
    # 최종 사용한 방 리턴
    answer = len(room_dict)
    return answer
solution([["15:00", "17:00"],
          ["16:40", "18:20"],
          ["14:20", "15:20"],
          ["14:10", "19:20"],
          ["18:20", "21:20"]])