Muscardinus

[3차] 방금그곡 본문

알고리즘 문제/[프로그래머스] Lv2

[3차] 방금그곡

Muscardinus 2021. 2. 10. 23:57
728x90

programmers.co.kr/learn/courses/30/lessons/17683

 

코딩테스트 연습 - [3차] 방금그곡

방금그곡 라디오를 자주 듣는 네오는 라디오에서 방금 나왔던 음악이 무슨 음악인지 궁금해질 때가 많다. 그럴 때 네오는 다음 포털의 '방금그곡' 서비스를 이용하곤 한다. 방금그곡에서는 TV,

programmers.co.kr

function solution(m, musicinfos) {
    let answer = [];
    let obj = {};
    for (let i = 0; i < musicinfos.length; i++) {
        let arr = musicinfos[i].split(",");
        let a = arr[0].split(":");
        let b = arr[1].split(":");
        let length = (b[0] - a[0]) * 60 + (b[1] - a[1]);
        let str = "";
        arr[3] = arr[3]
          .replace(/(C#)/g, 'c')
          .replace(/(D#)/g, 'd')
          .replace(/(F#)/g, 'f')
          .replace(/(G#)/g, 'g')
          .replace(/(A#)/g, 'a');
        m = m
          .replace(/(C#)/g, 'c')
          .replace(/(D#)/g, 'd')
          .replace(/(F#)/g, 'f')
          .replace(/(G#)/g, 'g')
          .replace(/(A#)/g, 'a');
        for(let j = 0; j < length; j++) {
            str += arr[3][j % arr[3].length];
        }
        obj[arr[2]] = str;
    }
    for (let key in obj) {
        if (obj[key].indexOf(m) >= 0) {
            if (!answer.length) {
                answer = [key, obj[key].length];
            }
            if (obj[key].length > answer[1]) {
                answer = [key, obj[key].length]
            }
        }
    }
    if (answer.length > 0) return answer[0];
    else return "(None)";
}
728x90

'알고리즘 문제 > [프로그래머스] Lv2' 카테고리의 다른 글

거리두기 확인하기  (0) 2022.01.28
행렬 테두리 회전하기  (0) 2022.01.23
[3차] 압축  (0) 2021.02.07
이진 변환 반복하기  (0) 2021.02.06
쿼드압축 후 개수 세기  (0) 2021.02.03
Comments