[Python][프로그래머스][Level3] 베스트앨범

[Python][프로그래머스][Level3] 베스트앨범

코드

def solution(genres, plays):
    answer =[]
    
    music={genre: [0,[]] for genre in genres}
    for idx, genre in enumerate(genres):
        music[genre][0]+=plays[idx]
        music[genre][1].append(idx)

    res = sorted(music, key= lambda x : -music[x][0])
    for genre in res:
        answer +=sorted(music[genre][1], key = lambda x: -plays[x])[:2]
    return answer

dictionary를 주로 활용해 풀었다.

music이라는 dictionary는 genre를 key로, genre의 재생횟수와 속해있는 index가 value로 구성되어있다.

genre의 재생횟수로 정렬하고

genre마다 재생횟수가 높은 고유번호(idx)를 최대 2개 answer 배열에 집어넣는다.

Discussion and feedback