기존에 풀이했던 프로그래머스의 베스트 앨범의 개선 코드입니다.
2022.02.07 - [코딩테스트/Javascript] - 베스트 앨범
#풀이
const solution = (genres, plays) => {
const genreMap = new Map();
genres.map((genre, index) => [genre, plays[index]]).forEach(([genre, play], index) => {
const musicData = genreMap.get(genre) || { total: 0, songs: [] }
genreMap.set(genre, {
total: musicData.total + play,
songs: [...musicData.songs, { play, index }]
.sort((a, b) => b.play - a.play)
.slice(0, 2)
})
})
return [...genreMap.entries()].
sort((a, b) => b[1].total - a[1].total).
flatMap(genre => genre[1].songs).
map(song => song.index);
}
flatMap 메서드는 반환하는 요소에 대해 한단계 평탄화를 적용한 배열을 반환합니다.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/flatMap