[JS] level 3 - 베스트앨범
9477 단어 알고리즘JavaScript프로그래머스JavaScript
베스트앨범
문제 출처
https://programmers.co.kr/learn/courses/30/lessons/42579
풀이
function solution(genres, plays) {
// 중복을 제외한 장르만 set에 저장
const genresSet = new Set();
genres.map((genre) => genresSet.add(genre));
const arr = [];
// 장르 set을 배열로 변환
[...genresSet].map((genre) => {
let sum = 0; // 장르별 재생된 노래 수의 합
const index = []; // 노래의 index와 재생횟수 저장 배열
genres.map((g, idx) => {
if (g === genre) {
sum += plays[idx];
index.push({'idx': idx, 'times': plays[idx]});
}
});
// 재생횟수가 가장 많은 노래 순으로 정렬
const sortedIndex = index.sort((a, b) => a.times > b.times ? -1 : a.times < b.times ? 1 : 0);
arr.push({'genre': genre, 'sum': sum, 'idx': sortedIndex});
});
// 장르중에서 노래 재생 횟수가 제일 많은 순으로 정렬
const result = arr.sort((a,b) => a.sum > b.sum ? -1 : a.sum < b.sum ? 1 : 0);
const answer = [];
// 장르별
result.map((data) => {
// 노래 횟수
data.idx.map((d, index) => {
// 재생횟수가 높은 순으로 정렬했으므로
// 순서대로 두 개만 선택
if (index < 2) {
answer.push(d.idx);
}
});
});
return answer;
}
Author And Source
이 문제에 관하여([JS] level 3 - 베스트앨범), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@se9oo/JS-level-3-베스트앨범저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)