(프로그래머) 호텔방

https://school.programmers.co.kr/learn/courses/30/lessons/155651

생각하다



고객이 사용하는 객실 수가 다음과 같을 때 필요한 최소 객실 수를 반납해야 합니다.

단, 사용 중인 방은 10분 동안 청소해야 합니다.

전체 이용자의 이용 시간을 최소 단위(분)로 나누고 해당 시간(분)마다 +1을 더하면 마지막에 표시되는 숫자가 해당 기간 동안 중복된 고객의 수입니다.

가장 겹치는돌아오면 그 때 이용했던 최대 고객 수이므로 이것이 정답이다.

단순히 단어를 번역하기는 어렵지만 간단히 말해서 누적 합계입니다.

(접두사 합계)찾으면됩니다.

.

한 가지 주의할 점은 고객이 사용하는 방은 10분 동안 청소해야 하므로 이를 고려하십시오. 이용 시간은 고객이 호텔 이용을 마친 시간 + 최대 10분을 포함합니다.

해야한다.

해결 – 누적 총계

import java.util.*;
class Solution {
    private int arr();
    public int solution(String()() book_time) {
        int answer = 0;
        arr = new int(24*60);
        
        for(int i = 0; i<book_time.length; i++){
            int startTime = convertToMinute(book_time(i)(0));
            int endTime = convertToMinute(book_time(i)(1));
            
            for(int j = startTime; j<(endTime + 10 < 24*60 ? endTime + 10 : 24 * 60); j++){
                arr(j)++;
            }
        }
        
        for(int i = 0; i<24*60; i++){
            answer = Math.max(answer, arr(i));
        }
        
        return answer;
    }
    private int convertToMinute(String time){
        
        StringTokenizer st = new StringTokenizer(time, ":");
        int hour = Integer.parseInt(st.nextToken()) * 60;
        int minute = Integer.parseInt(st.nextToken());
        return hour + minute;
    }
}