[프로그래머스] 베스트 앨범
def solution(genres, plays):
# 장르별 총 재생 횟수 집계
genre_play_count = {}
# 곡별 정보 저장 (장르, 재생 횟수, 인덱스)
songs = []
for i, g in enumerate(genres):
genre_play_count[g] = genre_play_count.get(g, 0) + plays[i]
songs.append((g, plays[i], i))
# 장르별 총 재생 횟수를 기준으로 정렬
# 튜플 형태의 (key : value)로 반환
sorted_genres = sorted(genre_play_count.items(), key=lambda x: x[1], reverse=True)
answer = []
for g, _ in sorted_genres:
# 해당 장르의 곡을 재생 횟수로 정렬
# genre_songs = [song for song in songs if song[0] == g]
genre_songs = []
for song in songs:
if song[0] == g:
genre_songs.append(song)
genre_songs.sort(key=lambda x: x[1], reverse=True)
# 상위 2개의 곡을 선택 (인덱스를 이용하여)
for song in genre_songs[:2]:
answer.append(song[2]) # 인덱스를 추가
return answer