function solution(genres, plays) {
var answer = [];
const arr = [];
const uniqG = Array.from(new Set(genres));
for(let i in genres){
arr.push({
i: i, // 고유번호
g: genres[i], // 장르
p: plays[i] // 재생된 횟수
})
}
const cnt = {}; // 장르별 재생횟수
const countG = uniqG.map((ug) => {
let gItems = arr.filter(a=>a.g === ug);
cnt[ug] = 0
return {
g: ug,
pCnt: gItems.reduce((acc,cur)=> {return acc + cur.p},0)
};
});
countG.sort((a, b) => a.pCnt > b.pCnt ? -1 : a.pCnt < b.pCnt ? 1 : 0)
console.log('cg',countG)
arr.sort((a, b) => a.p > b.p ? -1 : a.p < b.p ? 1 : 0);
console.log('arr',arr);
for(let genre of countG){
// countG 앞에 있는 장르부터 찾는다
const firstIndex = arr.findIndex((a) => genre.g === a.g);
answer.push(parseInt(arr[firstIndex].i));
arr.splice(firstIndex, 1)
const secondFound = arr.find((a) => genre.g === a.g);
answer.push(parseInt(secondFound.i))
}
console.log(cnt)
return answer;
}
'Web development > Algorithm' 카테고리의 다른 글
[HackerRank 30 Days of Code] Day 5 ~ Day 7 (0) | 2020.07.13 |
---|---|
[javascript] 큐, 스택 구현 (0) | 2020.07.08 |
[HackerRank 30 Days of Code] Day 3, Day 4 (0) | 2020.07.07 |
[HackerRank 30 Days of Code] Day 0 ~ Day 2 (0) | 2020.07.07 |
[javascript] 숫자 형변환(문자열 -> Float) (0) | 2020.07.04 |
댓글