멜론 베스트 앨범 뽑기
- 각 장르 별 재생 수 총합을 담은 딕셔너리 1개, 각 장르 별 [인덱스, 재생 수] 를 리스트로 담은 딕셔너리 1개, 총 두 개의 딕셔너리를 구성해야함.
- 딕셔너리에서 value를 이용한 정렬, 여러 리스트 간 특정 인덱스(1)를 이용한 정렬은 sorted 함수와 lambda식을 이용한다.
genres = ["hiphop", "classic", "pop", "classic", "classic", "pop", "hiphop"]
plays = [2000, 500, 600, 150, 800, 2500, 2000]
def get_melon_best_album(genre_array, play_array):
sum_dict = {}
music_dict = {}
result = []
for i in range(len(genre_array)):
if genre_array[i] not in sum_dict:
sum_dict[genre_array[i]] = play_array[i]
music_dict[genre_array[i]] = [[i, play_array[i]]]
else:
sum_dict[genre_array[i]] += play_array[i]
music_dict[genre_array[i]].append([i, play_array[i]])
sum_dict = sorted(sum_dict, key= lambda x : sum_dict[x], reverse=True)
for i in sum_dict:
music_dict[i] = sorted(music_dict[i], key=lambda x:x[1], reverse=True)
for j in range(len(music_dict[i])):
if j > 1:
break
result.append(music_dict[i][j][0])
return result
print(get_melon_best_album(genres, plays))