본문 바로가기

프로그래머스 퀴즈(Python)/level 2

23.02.20 파이썬 코딩 퀴즈#164 호텔 대실(프로그래머스 스쿨)

이번 문제는 호텔 대실 문제이다.

특별한 상황이 없고, 청소 시간은 항상 10분이 기준이다.

입출력 에 2번에서 확인 가능하듯이, 청소 시간이 10분 소요되지만, 첫 번째 손님의 퇴실 시간과 두번째 손님의 입실 시간 사이에 10분만 존재하면 한 방에서 투숙 가능하다.

 

위 조건에 맞춰서 정리하자면,

고객 A, B 가 존재하고, A 가 B보다 입실 시간이 빠르다면,

A의 퇴실 시간과 B의 입실 시간 사이에 10분의 시간이 존재하는 경우에 같이 방을 쓸 수 있다.

시간으로 제한되어 있는 조건이기에, 시간표를 그려서 방을 배정하는 방법을 택하였다.

이때 최종적으로 나가는 시간에 추가로 청소시간까지 더해지고, 서로 겹쳐지는 값을 없애기 위해서 +9 만큼 청소시간을 정하였다.

그리고 환산한 입실/퇴실 시간에 맞춰서 새당 table에 그려넣으면,

이런 느낌으로 배열이 생성된다

만약 겹치는 시간대가 존재한다면 2 가 생길 것이고, 이는 방이 2개 필요하다는 이야기 이다.