강의로 돌아가기
91

JS 정답 참고하세요

시간 12:00~12:25, 음 CC#B
CcB로 변환 후 padEnd로 25글자로 만듭니다. CcBCcBCcBCcBCcBCcBCcBCcBC 가 되겠네요

padEnd 이후 slice는
시간 12:00~12:01, 음 CC#B
CcB로 변환 후 padEnd를 거쳐도 CcB이기 때문에 slice(0, 1)로 1글자 만들기

작성중인 코드―solution.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function solution(m, musicinfos) {
    m = m.replace(/(C|D|F|G|A)#/g, (_, a) => a.toLowerCase());
    musicinfos = musicinfos
        .map((music) => {
            let [start, end, title, melody] = music.split(',');
            let h = end.slice(0, 2) - start.slice(0, 2);
            let m = end.slice(3) - start.slice(3);
            const time = h * 60 + m;
            melody = melody.replace(/(C|D|F|G|A)#/g, (_, a) => a.toLowerCase());
            return [time, title, melody.padEnd(time, melody).slice(0, time)];
        })
        .filter(([_, $, melody]) => melody.indexOf(m) >= 0)
        .sort(([a], [b]) => b - a);
    return musicinfos[0]?.[1] || '(None)';
}

0 개의 답변
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다.