- 난이도: Lv2
프로그래머스 링크: https://school.programmers.co.kr/learn/courses/30/lessons/155651
풀이 링크(GitHub): hayannn/CodingTest_Java/프로그래머스/2/155651. 호텔 대실
풀이 시간 : 45분
import java.util.*;
class Solution {
private static final int MAX_TIME = 1_450;
private static final int HOUR = 60;
private static final int CLEAN_TIME = 10;
public static int solution(String[][] book_time) {
int answer = 0;
int[] rooms = new int[MAX_TIME];
for (String[] time : book_time) {
String inTime = time[0];
String outTime = time[1];
// 시간을 직접 계산하는 부분을 메서드 없이 인라인으로 처리
String[] inSplit = inTime.split(":");
int inMinutes = (Integer.parseInt(inSplit[0]) * HOUR) + Integer.parseInt(inSplit[1]);
String[] outSplit = outTime.split(":");
int outMinutes = (Integer.parseInt(outSplit[0]) * HOUR) + Integer.parseInt(outSplit[1]);
// 시간 계산 및 배열 업데이트
rooms[inMinutes] += 1;
rooms[outMinutes + CLEAN_TIME] -= 1;
}
// 누적된 방의 최대 사용량 계산
for (int i = 1; i < MAX_TIME; i++) {
rooms[i] += rooms[i-1];
answer = Math.max(answer, rooms[i]);
}
return answer;
}
}