합계: 86.7 / 100.0
function solution(genres, plays) {
var answer = [];
const map = new Map();
let object = {};
for (let i = 0; i < genres.length; i++) {
map.set(plays[i], i)
if (object[genres[i]]) {
object[genres[i]].push(plays[i])
} else object[genres[i]] = [plays[i]]
}
const 장르순위 = 인기장르찾기(object)
// 장르순위 array 돌면서, object의 value 값을 map에서 찾아서 push
for (let i = 0; i < 장르순위.length; i++) {
object[장르순위[i]].sort((a, b) => b - a)
object[장르순위[i]].map((item, index) => {
if (index < 2) {
answer.push(map.get(item))
} else return
})
}
return answer;
}
const 인기장르찾기 = (object) => {
let obj = {}
for (let key in object) {
object[key].reduce((acc, cur) => {
return obj[key] = acc + cur
}, 0)
}
// 객체의 값들을 배열로 변환
const arr = Object.entries(obj);
// 값만 추출하여 정렬
arr.sort((a, b) => b[1] - a[1]);
// 정렬된 배열을 다시 객체로 변환
const sortedObj = Object.fromEntries(arr);
return Object.keys(sortedObj)
}
console.log(solution(["classic", "pop", "classic", "classic", "pop"], [500, 600, 150, 800, 2500]))