728x90
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/155651
문제 설명
호텔을 운영 중인 코니는 최소한의 객실만을 사용하여 예약 손님들을 받으려고 합니다. 한 번 사용한 객실은 퇴실 시간을 기준으로 10분간 청소를 하고 다음 손님들이 사용할 수 있습니다.
예약 시각이 문자열 형태로 담긴 2차원 배열 book_time이 매개변수로 주어질 때, 코니에게 필요한 최소 객실의 수를 return 하는 solution 함수를 완성해주세요.
코드
def solution(book_time):
answer = 1
Time = []
n = len(book_time)
for i in range(n):
nT = []
for j in book_time[i]:
h, m = j.split(":")
M = int(h)*60 + int(m)
nT.append(M)
Time.append(nT)
book_times = sorted(Time, key=lambda x : (x[0], x[1]))
rooms = []
for book_time in book_times:
if not rooms:
rooms.append(book_time)
continue
for index, room in enumerate(rooms):
if book_time[0] >= room[-1] + 10:
rooms[index] = room + book_time
break
else:
rooms.append(book_time)
return len(rooms)
728x90
반응형
'코딩테스트 준비 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] - 나누어 떨어지는 숫자 배열 (파이썬, Python) (0) | 2023.10.05 |
---|---|
[프로그래머스] - 가운데 글자 가져오기 (0) | 2023.10.05 |
[프로그래머스] - 2016년 (파이썬, Python) (0) | 2023.10.05 |
[프로그래머스] - 광물 캐기 (파이썬, Python) (0) | 2023.10.04 |
[프로그래머스] 연속된 부분 수열의 합 (파이썬, Python) (0) | 2023.10.04 |