반응형
코딩테스트 연습 - 호텔 대실 | 프로그래머스 스쿨 (programmers.co.kr)
<문제 풀이>
- 이러한 유형의 시간문제는 문제에서 주어지는 시각의 제일 작은 단위로 변환하여 list로 만들어서 문제를 푸는 방식이었던 것 같다.
- 이 문제에서는 시간:분 이기 때문에 시각을 0부터 시작하여 11시 59분까지를 분으로 만들어 주었다.
- 입력값을 분으로 변환 후 24시가 넘어가는 것은 주어진 조건으로 해결하고 대실 하는 시간에는 체크해준다.
- 이때 청소시간에 이용이 불가능하기 때문에 대실시간에 함께 포함시킨다.
<Code>
def solution(book_time):
check = [0]*1440 # 0 ~ 23:59 까지를 분으로 체크하기 위한 list 생성
for times in book_time:
# 입력값을 분으로 변환
sh, sm = map(int, times[0].split(':'))
eh, em = map(int, times[1].split(':'))
start = sh * 60 + sm
end = eh * 60 + em + 10 # 청소시간 10분 포함
if end > 1440: # 24시를 넘어가는 경우 24시로 통일
end = 1440
for idx in range(start, end): # 대실하는 시간에 체크
check[idx] += 1
return max(check) # 방의 수가 가장 많이 대실하고 있을 때 값을 출력
※ 잘못된 점, 개선점 등이 있다면 언제든 댓글로 알려주시면 감사하겠습니다.
반응형
'Alogorithm > programmers' 카테고리의 다른 글
[programmers] Lv2 뒤에 있는 큰 수 찾기 - Python (0) | 2023.03.28 |
---|---|
[programmers] Lv2 무인도 여행 - Python (0) | 2023.03.28 |
[programmers] Lv3 인사고과 - Python (0) | 2023.03.24 |
[programmers] Lv2 광물 캐기 - Python & Java (0) | 2023.03.24 |
[programmers] Lv3 고고학 최고의 발견 - Python (0) | 2023.03.21 |