문제
제한 사항
입출력 예
풀이
function solution(genres, plays) {
let answer = [];
const songs = [];
const genreSumHash = {};
const genreSumArr = [];
genres.forEach((genre, id) => {
songs.push({ id: id, genre: genre, play: plays[id] });
genreSumHash[genre] =
genreSumHash[genre] === undefined
? plays[id]
: genreSumHash[genre] + plays[id];
});
for (const key in genreSumHash) {
genreSumArr.push([key, genreSumHash[key]]);
}
genreSumArr.sort((a, b) => b[1] - a[1]);
console.log(genreSumArr);
for (const arr of genreSumArr) {
const sorted = songs
.filter((song) => song.genre === arr[0])
.sort((a, b) => b.play - a.play);
for (let i = 0; i < 2 && i < sorted.length; i++) {
answer.push(sorted[i].id);
}
}
return answer;
}
- 조금 복잡한 문제이다. 원리는 코드를 읽어보면 쉽게 이해가 갈 것이다.
- 객체를 잘 다뤄야겠다.