function solution(melody, musicinfos) {
let infos = musicinfos.map((v) => v.split(','));
let fullMusic = [];
let long = 0;
let pattern = /[A-Z]#/g;
melody = melody.replace(pattern, (v) => v.slice(0, 1).toLowerCase());
for (let i = 0; i < infos.length; i++) {
let [str, end, song, tune] = [...infos[i]];
tune = tune.replace(pattern, (v) => v.slice(0, 1).toLowerCase());
let h = str.slice(0, 2) - end.slice(0, 2) - 1;
let m = str.slice(3) - end.slice(3) + 60;
let wholeM = Math.abs(60 * h + m);
let allRe = Math.floor(wholeM / tune.length);
let eachRe = wholeM % tune.length;
let allTune = tune.repeat(allRe) + tune.slice(0, eachRe);
if (allTune.includes(melody)) {
fullMusic.push([wholeM, song]);
if (long <= wholeM) long = wholeM;
}
}
if (!fullMusic.length) return '(None)';
for (let k = 0; k < fullMusic.length; k++) {
if (long === fullMusic[k][0]) return fullMusic[k][1];
}
}
< 생각하지 못했던 테스트 케이스 >