코딩테스트 파이썬/파이썬 프로그래머스 2단계
호텔 대실
세용용용용
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"]])