[プログラマーレベル3]ベストアルバム
に質問
ストリーミングサイトでは、最も多く再生された曲を2曲集め、ベストアルバムを発売します.曲は唯一の番号で区切られており、収録曲の基準は以下の通りである.
まずは
せいげんじょうけん
💡 に答える
class Solution {
fun solution(genres: Array<String>, plays: IntArray): IntArray {
var answer = intArrayOf()
val genres = genres.mapIndexed { index, genre -> Pair(genre, index) }
val genresMap = genres.groupBy( {it.first}, {it.second} )
var genresMapWithPlays = genresMap.mapValues { it.value.map { Pair(it, plays.get(it))} }.mapValues { it.value.sortedByDescending { it. second } }
val playsByGenre = genresMap.mapValues{ it.value.fold(0) { acc, num -> acc + plays.get(num) } }.toList().sortedByDescending { it.second }.toMap()
playsByGenre.forEach { genre, totalPlay ->
val songList = genresMapWithPlays.get(genre)
if(songList!!.size == 1)
answer += (songList[0].first)
else {
answer += (songList[0].first)
answer += (songList[1].first)
}
}
return answer
}
}
Reference
この問題について([プログラマーレベル3]ベストアルバム), 我々は、より多くの情報をここで見つけました https://velog.io/@yuuuzzzin/프로그래머스-Level-3-베스트-앨범テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol