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