본문 바로가기

코테

[Programmers] 방금그곡 JS

반응형

우선 #붙어있는거 다 변환해준다

time은 분으로 계산해서 러닝타임을 알아내고

멜로디에 포함하는지 구하면 끝

//일치하는거 없으면 (None)
//시작,끝,제목,악보
//여러개->시간긴거->앞에있던거

function change(str){
    let result = str.replace(/C\#/g,"1").replace(/D\#/g,"2").replace(/F\#/g,"3").replace(/G\#/g,"4").replace(/A\#/g,"5");
    return result;
}

function timeCheck(t1, t2){
    let time1 = parseInt(t1[0]+t1[1])*60+parseInt(t1[3]+t1[4]);
    let time2 = parseInt(t2[0]+t2[1])*60+parseInt(t2[3]+t2[4]);
    return time1-time2;
}

function melody(s, time){
    let tmp="";
    for(let i=0; i<time; i++){
        tmp+=s[i%s.length];
    }
    return tmp;
}

function solution(m, musicinfos) {
    var answer = '';
    let resultTime=0;
    m = change(m);
    for(let i=0; i<musicinfos.length; i++){
        let info = musicinfos[i].split(',');
        let time = timeCheck(info[1],info[0]);
        info[3] = change(info[3]);
        let mel = melody(info[3],time);
        if(mel.includes(m)){
            if(resultTime<time){
                resultTime=time;
                answer = info[2];
            }
        }
    }
    if(answer==="") return "(None)";
    return answer;
}
반응형

'코테' 카테고리의 다른 글

[Programmers] N개의 최소공배수 JS  (0) 2022.01.20
[Programmers] 최솟값 만들기 JS  (0) 2022.01.20
[Programmers] 방문길이 JS  (0) 2022.01.20
[Programmers] 위장 JS  (0) 2022.01.20
[Programmers] 삼각 달팽이 JS  (0) 2022.01.19