노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생횟수를 나타내는 정수 배열 plays가 주어질 때, 베스트 앨범에 들어갈 노래의 고유 번호를 순서대로 return 하도록 solution 함수를 완성하세요.
def solution(genres, plays):
answer = []
# key: 장르, total: 전체 재생시간, music: [i, 재생시간]
playList = {}
for i, genre in enumerate(genres):
if genre not in playList:
playList[genre] = {'total': 0, 'music': []}
playList[genre]['total'] += plays[i]
playList[genre]['music'].append((i, plays[i]))
# 속한 노래가 많이 재생된 순으로 정렬
keys = sorted(list(playList.keys()),key = lambda x: playList[x]['total'], reverse = True)
for key in keys:
# 장르 내에서 많이 재생된 노래 순으로 정렬
# 재생 횟수가 같은 노래 중에는 고유 번호 순으로 정렬
music = sorted(playList[key]['music'], key = lambda x: (-x[1], x[0]))
answer += [x[0] for x in music[:2]]
return answer