시작하는 중
프로그래머스 - 호텔 대실 본문
호텔의 예약 정보가 들어오고 정보를 바탕으로 대실이 몇개 필요할지 계산하는 문제
어떻게 풀어야할까?
처음에는 어렵게 생각해서 리스트 만들고 계속 검사하면서
기존 방들의 시간이 겹치면 리스트에 해당 예약 시작, 끝 정보를 담는 리스트를 추가하여
결국 2차원 리스트로 하려고 했는데
하다보니깐?? 그냥 구간합으로 풀면 되는 문제였다.
1. 길이가 60*24인 number 리스트를 만들고
2. 예약 정보에 대한 순회를 돌고
3. string 형태의 시간과 분을 파싱하고
4. 구간합을 하기 위해 시작과 끝 지점을 각각 1, -1로 마킹하고
5. 예약 정보 순회가 끝난 후 number_list를 돌면서 구간합을 하면 된다.
밑에는 코드에요.
def solution(book_time_list):
answer = 0
total_minute_list = list(0 for i in range(60*24))
for book_time in book_time_list:
start_m, start_s = map(int,book_time[0].split(":"))
start_time = start_m * 60 + start_s
end_m, end_s = map(int,book_time[1].split(":"))
end_time = end_m * 60 + end_s
if end_time + 10 < 60*24:
end_time += 10
else:
end_time = 60*24 - 1
total_minute_list[start_time] += 1
total_minute_list[end_time] += -1
for index in range(1,60*24):
total_minute_list[index] += total_minute_list[index-1]
answer = max(total_minute_list)
return answer
'알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 오픈채팅방 (0) | 2023.02.21 |
---|---|
프로그래머스 - 시소 짝꿍 (3) | 2023.02.06 |
프로그래머스 - 숫자 변환하기 (0) | 2023.02.06 |
프로그래머스 - 뒤에 있는 큰 수 찾기 (0) | 2023.02.06 |
프로그래머스 - 인사고과 (0) | 2023.02.05 |