
문제해석

여기서 중요한것이 마지막 셔틀 버스를 타야된다는것이다.
그러니 
test 4에서 9:00 에 타는이유는 9시에 출발하는게 마지막 셔틀버스이기때문이고
18:00 에 타는 이유도 같은 이유다 .
이부분이 헷갈려서 다른 사람들 코드를 참조 했다.
나의 풀이
function solution(n, t, m, timetable) {
// 시간 문자열을 분 단위로 변환하는 함수
const timeable_tominute = (str) => {
let hour = Number(str.slice(0, 2));
let minute = Number(str.slice(3, 5));
return hour * 60 + minute;
};
// 분을 다시 "hh:mm" 형태의 문자열로 변환하는 함수
const minute_to_hour = (strr) => {
let hour = Math.floor(strr / 60);
let minute = strr % 60;
return `${hour.toString().padStart(2, '0')}:${minute.toString().padStart(2, '0')}`;
};
let hour_update = 9 * 60; // 09:00을 분 단위로 변환
timetable = timetable.map(timeable_tominute).sort((a, b) => a - b);
let clock = 0;
for (let i = 1; i <= n; i++) {
// 이번 셔틀에 탈 수 있는 사람들을 찾기
let in_bus = timetable.filter((el) => el <= hour_update).slice(0, m);
if (i === n) {
// 마지막 셔틀에서 가능한 가장 늦은 시간 계산
if (in_bus.length < m) {
clock = hour_update;
} else {
clock = in_bus[m - 1] - 1;
}
}
// 셔틀 출발 후, 이미 탄 사람들은 제거
timetable = timetable.slice(in_bus.length);
// 다음 셔틀 시간 업데이트
hour_update += t;
}
return minute_to_hour(clock);
}

et in_bus = timetable.filter((el) => el <= hour_update).slice(0, m);
timetable = timetable.slice(in_bus.length);
else{
timetable.splice(0,in_bus.length > m ? m : in_bus.length)
}