08.10에 푼 문제입니다🌷
[1차] 셔틀버스
function solution(n, t, m, timetable) {
var answer = '';
const bustime=[]
let crews = []
let time = 9*60
// 1.
for(let i=0;i<n;i++){
bustime.push(time)
time+=t
}
// 2.
timetable.map(t=>{
t=t.split(':')
t=parseInt(t[0])*60+parseInt(t[1])
crews.push(t)
})
// 3.
crews.sort((a,b)=>a-b)
for(let i=0;i<bustime.length-1;i++){
let people = 0
while(crews[0]<=bustime[i]&&people<m){
people++
crews.shift()
}
}
let lastbus = bustime.pop()
// 4.
crews=crews.slice(0,m)
// 5.
if(crews.length<m){
answer=lastbus
}
else{
let lastcrew = crews.pop()
// 6.
if(lastcrew<=lastbus){
answer = lastcrew-1
}
else{
// 7.
answer= lastbus
}
}
return String(Math.floor(answer/60)).padStart(2,'0')+':'+String(answer%60,2).padStart(2,'0')
}