프로그래머스/LEVEL 3

베스트 앨범

GenieLove! 2022. 4. 20. 19:46
728x90
반응형

Python

def solution(genres, plays):
    """
    music_dict = {
        "classic" : [total_plays, [index1, plays1], [index2, plays2]],
        "pop" : [total_plays, [index1, plays1], [index2, plays2]],
    }
    """
    music_dict = dict()
    answer = []
    
    for i in range(len(genres)):
        if music_dict.get(genres[i]):
            music_dict[genres[i]][0] += plays[i]
            
        else:
            music_dict[genres[i]] = [plays[i]]
        music_dict[genres[i]].append([i, plays[i]])
    
    #music_dict key를 total_plays기준으로 역순 정렬하여 접근
    for genre in sorted([key for key in music_dict], key=lambda x: -music_dict[x][0]):
        play_list = music_dict[genre][1:]#total_plays값을 뺀 [index1, play1] list 값에 접근
        play_list.sort(key=lambda x: -x[1])# play1 값 기준으로 역순 정렬
        
        for l in play_list[:min(len(play_list), 2)]:#길이가 1이면 1까지만 접근하도록 for문 작성
            answer.append(l[0])

    
    return answer
728x90
반응형