코딩하는 해맑은 거북이

[Python] 베스트앨범 - 프로그래머스 본문

코딩테스트

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

#CJE 2023. 1. 4.
해당 글은 프로그래머스 해시 Level3 문제 '베스트앨범'을 다룬다.

문제

https://school.programmers.co.kr/learn/courses/30/lessons/42579

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

설명

딕셔너리의 key, value 형태를 이용해서 푸는 문제이다.

딕셔너리 2개를 이용해서 먼저 많이 재생된 장르를 정렬하고, 장르 중에 많이 재생된 노래를 정렬해서 2개만 정답으로 넣어주면 된다.

 

코드

def solution(genres, plays):
    answer = []
    genres_dict = {}
    total_genres = {}
    
    for i, (g, p) in enumerate(zip(genres, plays)):
        if g not in genres_dict:
            genres_dict[g] = [(i, p)]
            total_genres[g] = p
        else:
            genres_dict[g].append((i, p))
            total_genres[g] += p
    
    for (k, v) in sorted(total_genres.items(), key=lambda x:x[1], reverse=True):
        for (i, p) in sorted(genres_dict[k], key=lambda x:x[1], reverse=True)[:2]:
            answer.append(i)
    
    
    return answer

     

 

 

Comments