Hash Level 3 - 베스트앨범
- 풀이 방법에 대한 접근법은 생각했으나, 실제 코드로 구현하지는 못했다
- 다른 사람의 풀이를 참고하여 구현했다
- 나중에 꼭 다시 풀어보기!!
function solution(genres, plays) {
const songsArr = genres.map((genre, idx) => {
return {"genre": genre, "count": plays[idx], "idx": idx}
});
const sumArr = [];
songsArr.forEach(song => {
let genre = sumArr.find(el => el.genre === song.genre)
if (!genre) {
sumArr.push({
genre: song.genre, sum: song.count
})
} else {
genre.sum += song.count
}
})
sumArr.sort((a, b) => b.sum - a.sum);
const answer = [];
sumArr.forEach(el => {
let song = songsArr.filter(song => el.genre === song.genre);
song.sort((a, b) => {
if (a.count !== b.count) return b.count - a.count;
return a.index - b.index;
});
answer.push(song[0].idx);
if(song.length > 1) answer.push(song[1].idx);
})
return answer;
}