(틀림.)호텔 대실.

·2026년 6월 2일

문제 해결 전략

  • 뭔가 시작점 - 끝점을 가지고 문제를 해결해야 할때는
    그리디를 생각하자.

: 그리디 이므로, 정렬 또는 pq로 해결해야겠다는 생각을 해야 함.

  • book_time을 정렬한 상태로, pq에는 endTime으로 처리하자.

  • 1) 아래의 그림을 보면, 19:20 분과 14:20 (시작 시간) 을 비교해서
    초과되면 pq에 넣는 방식으로 함.

  • 2) pq 정렬은 낮은 endTime이 top에 오도록 ,
    -> 이렇게 해야 15:20 , 17:00 , 19:10 인 상태에서

  • 3) 16:40이 들어올때 15:20을 처리할 수 있다.


업그레이드

  • 문제를 보면, book_time은 string으로 되어 있고, 추후에 +10분을 더하는 작업을 해야 하므로, string이 아닌, int로 진행해야 함을 결정해야 한다.

  • 그런데 나는 놓쳤기 때문에 이렇게 복잡하게 했다.

앞으로는 이렇게

시간문제가 나오고, string이 나온다면, 통일된 규약 (예를 들어 시간:분 에서 분으로 통합) 으로 해야 하므로,
반드시 int로 타입을 규정하고 진행하자.


pq에서 정렬 방식 항상 헷갈린다.

  • less로 할지? greater로 할지
    : 시작하자마자 top()에 오름차순인지, 내림차순이지 빨리
    테스팅하고 진행하자.
profile
🔥🔥🔥

0개의 댓글