본문 바로가기
Web development/Algorithm

베스트앨범

by 자몬다 2020. 7. 8.
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;
}

 

댓글