프로그래머스 방금그곡

jathazp·2022년 3월 6일
0
function solution(m, musicinfos) {
    let answer = '';
    let playedtime=0;
    m = m.replace(/[A-Z]#/g,m => m[0].toLowerCase());

    for(const i of musicinfos){
        let info = i.split(',');
        let time = info[1].split(':').map(x=>+x).reduce((acc,cur)=>acc*60+cur,0)-
        info[0].split(':').map(x=>+x).reduce((acc,cur)=>acc*60+cur,0); 
        let title = info[2];
        let song = info[3].replace(/[A-Z]#/g,x => x[0].toLowerCase());
        let played='';
        for(let j=0;j<time;j++){
            let idx = j%song.length;    
            played+=song[idx];
        }
        if(played.includes(m) && played.length>playedtime){
            playedtime=played.length;
            answer=title;
        }
    }

    if(answer==='') answer='(None)';
    return answer;
}

console.log(solution("ABCDEFG",["12:00,12:14,HELLO,CDEFGAB", "13:00,13:05,WORLD,ABCDEF"]));

replace에서 변경 직전의 값에 대해 접근하는 방법에 대해 새롭게 배웠다.
let song = info[3].replace(/[A-Z]#/g,x => x[0].toLowerCase());

ref)https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/replace

0개의 댓글