[프로그래머스 Lv.2] 2018 KAKAO BLIND RECRUITMENT - [3차] 방금그곡

김민지·2023년 10월 4일
0

✨ 문제 ✨

✨ 정답 ✨


function replaceSharp(str) {
  // #이 들어간 음을 다른 알파벳으로 교체해주는 함수
  str = str.replace(/C#/gi, "Z");
  str = str.replace(/D#/gi, "X");
  str = str.replace(/F#/gi, "V");
  str = str.replace(/G#/gi, "N");
  str = str.replace(/A#/gi, "M");
  return str;
}

function solution(m, musicinfos) {
    let answer=[];
    m=replaceSharp(m)
    for (let i=0;i<musicinfos.length;i++){
        //재생 시간
        let [musicStart, musicEnd, title, cords]=musicinfos[i].split(',');
        cords=replaceSharp(cords);
        let endHour=parseInt(musicEnd.split(':')[0])
        let endMin=parseInt(musicEnd.split(':')[1])
        let startHour=parseInt(musicStart.split(':')[0]);
        let startMin=parseInt(musicStart.split(':')[1]);
        let songTime=endHour*60+endMin-startHour*60-startMin;
        
        // 재생 시간이 cords보다 적으면 cords를 변경
        if (songTime<cords.length){
            cords=cords.slice(0,songTime)
        }else if (songTime>cords.length){
            let calculate=parseInt(songTime/cords.length);
            for (let j=0;j<calculate;j++){
                if (cords.length>songTime){
                    break;
                }
                cords+=cords;
            }
            cords=cords.slice(0, songTime);
        }
        if (cords.includes(m)){
            answer.push([title, songTime]);
        };
    }
    if (answer.length===0){
        return "(None)";
    }
    if (answer.length>1){
        answer.sort((a,b)=>{
            if (a[1]>b[1]){
                return -1;
            }
            if (a[1]===b[1]){
                return 0;
            }
            if (a[1]<b[1]){
                return 1;
            }
        })
                console.log(answer)

        return answer[0][0];
    }
      console.log(answer)
    return answer[0][0];

}

🧵 참고한 정답지 🧵

https://velog.io/@highero-k/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EB%B0%A9%EA%B8%88%EA%B7%B8%EA%B3%A1-JavaScript-Level-2

💡💡 기억해야 할 점 💡💡

profile
이건 대체 어떻게 만든 거지?

0개의 댓글

관련 채용 정보