PS/프로그래머스
[Level 3][Javascript]베스트앨범
returnzero
2022. 6. 23. 22:07
function solution(genres, plays) {
var answer = [];
function Item(genre, play, id){
this.genre=genre;
this.play=play;
this.id=id
}
let genreSum={};
let itemArr=[];
for (let i =0; i<genres.length;i++){
itemArr.push(new Item(genres[i],plays[i],i));
genreSum[ genres[i]] = (genreSum[genres[i]]||0) +plays[i]
}
let sortable=[];
for (let key in genreSum){
sortable.push([key, genreSum[key]])
}
// console.log(genreSum);
sortable.sort(
function(a,b){return b[1]-a[1]}
);
// console.log(sortable);
for (let value of sortable){
// console.log(value[0]);
let Musics= itemArr.filter(e=> e.genre==value[0]);
// console.log(Musics);
Musics.sort(function(a,b){
if (b.play===a.play) return a.id-b.id;
else{
return b.play-a.play
}
})
answer.push(Musics[0].id);
if(Musics.length > 1) {
answer.push(Musics[1].id);
}
}
return answer;
}
그리 어렵지 않다. 어려운 자료구조 생각하지 말고 머리속에 생각나는 직관적인 모습으로 고치자.