[해시] 베스트 앨범

박고은·2023년 5월 24일
0

def solution(genres, plays):
    answer = []
    album = dict(zip(genres, [[0] for _ in range(len(genres))]))
    
    for i, g, p in zip(range(len(genres)), genres, plays):
        album[g][0] += p
        album[g].append((i, p))
        
    seq = sorted(album, key= lambda x:album[x][0], reverse=True)
    
    for k in album.keys():
        album[k] = sorted(album[k][1:], key= lambda x:x[1], reverse=True)
        
    for s in seq:
        answer += [a[0] for a in album[s]][:2]
        
    return answer

딕셔너리에 장르별로 플레이 횟수를 합계를 구하고 인덱스와 함께 배열에 저장
lambda 함수를 활용해서 장르별 플레이 횟수의 합계로 장르 내림차순 정렬
lambda 함수를 활용해서 장르 내 플레이 횟수로 내림차순 정렬
두 곡씩만 앨범에 수록 가능하므로 장르별 2곡까지만 추가

0개의 댓글