문제의 조건을 잘 읽고 풀면 되는 문제
function solution(m, musicinfos) {
let answer = [];
for(let i = 0; i < musicinfos.length; i++){
let target = musicinfos[i].split(",");
let startTime = target[0];
let endTime = target[1];
let title = target[2];
let info = target[3];
let start = startTime.split(":");
let startHour = parseInt(start[0]);
let startminute = parseInt(start[1]);
let end = endTime.split(":");
let endHour = parseInt(end[0]);
let endminute = parseInt(end[1]);
let infoArr = info.split(/([A-Z]#*)/).filter(e=>e!='');
let arr = [];
//console.log(infoArr)
//console.log(startminute, endminute)
let lenCheck = (endHour-startHour) * 60 + (endminute-startminute)
for(let j = 0 ; j < lenCheck ; j++){
//console.log(j%infoArr.length)
arr.push(infoArr[j%infoArr.length]);
}
let targetArr = m.split(/([A-Z]#*)/).filter(e=>e!='');
for(let j = 0; j < infoArr.length ; j++){
let val = arr.slice(j,j+targetArr.length).join("");
if(val === m){
answer.push([lenCheck, title, i]);
break;
}
}
}
answer.sort((a,b)=>{
if(a[0]!==b[0]){
return b[0]-a[0]
}
else {
return a[2]-b[2];
}
});
if(answer.length===0){
return '(None)';
}
return answer[0][1];
}