

나의 코드
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"]])
'코딩테스트 파이썬 > 파이썬 프로그래머스 2단계' 카테고리의 다른 글
| 줄 서는 방법 (0) | 2023.10.02 |
|---|---|
| 숫자 카드 나누기 (1) | 2023.09.29 |
| 행렬 테두리 회전하기 (0) | 2023.09.27 |
| [카카오 인턴] 수식 최대화 (0) | 2023.09.11 |
| 전력망을 둘로 나누기 (0) | 2023.09.07 |