def solution(genres, plays):
gg1 = {i:0 for i in genres}
gg2 = {i:[] for i in genres}
for i,genre in enumerate(genres):
gg1[genre] += plays[i]
a = [i,plays[i]]
gg2[genre].append(a)
for i,genre in enumerate(genres):
gg2[genre].sort(key = lambda x:(-x[1],x[0]))
k = sorted(gg1.items(), key = lambda x:-x[1])
gg1 = dict(k) ; answer = []
for i in gg1.keys():
if len(gg2[i])>=2:
for j in gg2[i][:2]:
answer.append(j[0])
else:
answer.append(gg2[i][0][0])
return answer
풀이
여러가지의 딕셔너리를 중복해서 사용해야해서 다소 헷갈리는 부분이 있었다.
장르별 재생횟수를 더한 뒤 재생횟수에 따라 정렬한 gg1 장르곡의 index와 재생횟수를 리스트로 담고 있는 gg2
이 두가지 딕셔너리를 활용해 문제를 풀이해야했다.
sorted(), lambda, sort()를 사용해서 딕셔너리를 정렬했고 (items를 정렬한 것이나 마찬가지) gg1, gg2를 하나의 for문에 사용해 풀이했다.