[プログラマー/python]Hash Bestアルバム
7009 ワード
https://programmers.co.kr/learn/courses/30/lessons/42579
アルゴリズム分類
問題を解く
sum arrayはarrayの各タイプの再生回数の総和を格納し,最も総和の大きいタイプ順にソートする.
また、ジャンルごとに再生回数が降順に並び、再生回数が同じ場合は、まず固有番号の低い曲を収録するので、固有番号は昇順に並びます.
ソースコード
def solution(genres, plays):
set_genr=set(genres)
array={i:[] for i in set_genr}
sum_array={i:0 for i in set_genr}
for i in range(len(plays)):
array[genres[i]].append((plays[i],i))
sum_array[genres[i]]+=plays[i]
sum_array=sorted(sum_array.items(), key=lambda x: x[1], reverse=True)
for i in range(len(sum_array)):
kinds=sum_array[i][0]
array[kinds].sort(key=lambda x: (-x[0], x[1]))
result=[]
for i in range(len(sum_array)):
for j in range(2):
result.append(array[sum_array[i][0]][j][1])
if len(array[sum_array[i][0]])==1:
break
return result
Reference
この問題について([プログラマー/python]Hash Bestアルバム), 我々は、より多くの情報をここで見つけました https://velog.io/@bye9/프로그래머스파이썬-해시-베스트앨범テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol