https://school.programmers.co.kr/learn/courses/30/lessons/42579
def solution(genres, plays):
answer = []
music = dict()
music_plays = dict()
for i in range(len(plays)):
if genres[i] not in music:
music[genres[i]] = plays[i]
else:
music[genres[i]] += plays[i]
if genres[i] not in music_plays:
music_plays[genres[i]] = [(plays[i],i)]
else:
music_plays[genres[i]].append((plays[i],i))
music_list = list(music.items())
music_list.sort(key=lambda x:(-x[1]))
for i in music_plays:
music_plays[i].sort(key=lambda x:(-x[0]))
for i in music_list:
if len(music_plays[i[0]]) ==1:
answer.append(music_plays[i[0]][0][1])
else:
answer.append(music_plays[i[0]][0][1])
answer.append(music_plays[i[0]][1][1])
print(answer)
return answer
genres =["classic", "pop", "classic", "classic", "pop"]
plays = [500, 600, 150, 800, 2500]
solution(genres,plays)
딕셔너리를 두개 만들었다.
하나의 딕셔너리에서는 총 재생횟수를 구하고 정렬하고
다른 딕셔너리에서는 재생횟수와 인덱스 번호를 넣고 마찬가지로 정렬했다.
그뒤 재생수가 많은 2개의 인덱스를 answer에 추가해주었다.