[プログラマー/LV 2]ベストアルバム(JavaScript)
1547 ワード
ベストアルバム
問題の説明
ストリーミングサイトでは、最も多く再生された曲を2曲集め、ベストアルバムを発売します.曲は唯一の番号で区切られており、収録曲の基準は以下の通りである.
まずはたくさんの曲が流れているタイプを収录
まずはジャンル内で流れる曲を収録
タイプ内で同じ再生回数の曲には、まず固有番号の低い曲が収録される.
整数配列のシナリオがある場合は、曲のタイプを表し、整数配列のシナリオは曲の再生回数を表します.
ソリューション関数を完了し、ベストアルバムを挿入する曲の一意の番号を順番に返します.
せいげんじょうけん
genres[i]はiという唯一のナンバーの曲です.
プレイ[i]は、iと番号付けされた唯一の曲の再生回数である.
genesはplaysと同じ長さで、1または10000未満です.
タイプは100種類未満です.
タイプの1曲であれば、1曲だけ選びます.
すべてのタイプで再生回数が異なります.
コード#コード#
function solution(genres, plays) {
var answer = [];
let genre = {}
let genreName = []
for (let i = 0; i< genres.length ;i++){
if (!genre[genres[i]]){
genre[genres[i]] = [[i, plays[i]]]
genreName.push(genres[i])
} else {
genre[genres[i]] = [...genre[genres[i]], [i, plays[i]]]
}
}
sumName = []
for(g of genreName){
let sum = 0
v = genre[g]
v.forEach(e => {
sum += e[1]
})
v.sort((a, b) =>
b[1] - a[1]
)
sumName.push(sum)
}
while (true){
if (Math.max(...sumName) === 0){
break
}
maxidx = sumName.indexOf(Math.max(...sumName))
sumName[maxidx] = 0
MaxArray = genre[genreName[maxidx]]
for(let i = 0;i<MaxArray.length && i< 2; i++){
answer.push(MaxArray[i][0])
}
}
return answer;
}
Reference
この問題について([プログラマー/LV 2]ベストアルバム(JavaScript)), 我々は、より多くの情報をここで見つけました https://velog.io/@okok0415/프로그래머스LV2-베스트앨범-JavaScriptテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol