-
0924_프로그래머스 #155651. 호텔 대실알고리즘 2024. 9. 24. 22:11
문제
https://school.programmers.co.kr/learn/courses/30/lessons/155651
코드
from collections import deque def solution(book_time): def int_time(time): return int(time[0:2]) * 60 + int(time[3:]) book_times = deque(sorted([[int_time(i[0]), int_time(i[1]) + 10] for i in book_time])) room = 0 out_times = [] while book_times: start, end = book_times.popleft() if not out_times: room += 1 out_times.append(end) else: if start >= min(out_times): out_times.remove(min(out_times)) else: room += 1 out_times.append(end) return room
※ 요즘 코딩테스트를 준비하면서 다시 알고리즘 공부를 하기 시작했는데, 나중에 복습할 겸 다시 기록으로 남겨보려고 한다! 오늘 문제는 입력으로 들어오는 "HH:MM" 형태를 어떻게 처리할지 고민했던 문제였당~ 처음에는 "22:10"이면 이걸 정수형으로 2210으로 바꿔서 문제를 풀었는데, 예제는 모두 통과했지만 실제에서는 9번 17번에서는 실패가 떴다. 문제에서 호텔 청소시간 10분을 고려할 때 만약 "23:50"이라 청소까지 하면 "2400"으로 바뀌었어야 하는데, 내 코드의 경우 "2360"으로 계산되더라 ㅠㅜ 이 부분을 수정하기 위해서 시간을 int로 바꾸는 과정에서 아예 분 단위로 통일해서 계산했더니 정답 처리됐다! 오랜만에 알고리즘 푸니까 아직은 적응 기간이 필요한듯 ..ㅎ
'알고리즘' 카테고리의 다른 글
0926_프로그래머스 #42577. 전화번호 목록 (1) 2024.09.26 0924_프로그래머스 #43162. 네트워크 (0) 2024.09.24 0716_백준 알고리즘 #14719. 빗물 (0) 2024.07.16 0712_백준 알고리즘 #16967. 배열 복원하기 (3) 2024.07.14 0711_백준 알고리즘 #29700. 우당탕탕 영화예매 (0) 2024.07.14