[프로그래머스] 호텔 대실(155651)

lhs's avatar
Jan 06, 2025
[프로그래머스] 호텔 대실(155651)
 

1. 문제 풀이 아이디어

  • 예약 시간을 분 단위로 변환하여 전체 시간을 나타내는 배열에 저장하고, 배열에서 가장 큰 값을 반환하여 문제를 해결한다.

2. 나의 정답 코드

class Solution { public int solution(String[][] book_time) { int answer = 0; int[] time = new int[1440]; for (String[] strings : book_time) { int start = time(strings[0]); int end = Math.min(time(strings[1]) + 10,1440); for (int i = start; i < end; i++) { time[i]++; } } for (int i = 0; i < 1440; i++) { answer = Math.max(answer, time[i]); } return answer; } private int time(String s) { String[] split = s.split(":"); int hour = Integer.parseInt(split[0]); int minute = Integer.parseInt(split[1]); return hour * 60 + minute; } }

3. 정리

  • book_time 배열을 순회하며 각 예약의 입실 시간과 퇴실 시간(퇴실 후 10분 포함)을 분 단위로 변환한 뒤, 해당 시간 구간에 해당하는 time 배열 값을 증가시킨다.
  • time 배열을 순회하여 가장 큰 값을 찾아 반환한다.
Share article

LHS's Study Space