문제풀이/기타

[파이썬] [해시] Pro 베스트앨범

승무_ 2022. 2. 10. 15:03

문제

https://programmers.co.kr/learn/courses/30/lessons/42579?language=python3 

 

코딩테스트 연습 - 베스트앨범

스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가

programmers.co.kr

 

코드

def solution(genres, plays):
    dict={}
    result=[]
    for i in range(len(genres)):
        if not genres[i] in dict:
            dict[genres[i]]=plays[i]
        else:
            dict[genres[i]]+=plays[i]
    #{'classic': 1450, 'pop': 3100}
    dict1=sorted(dict.items(), key=lambda x: x[1], reverse=True)
    #[('pop', 3100), ('classic', 1450)]
    for i in dict1:
        temp={}
        for j in range(len(genres)):
            if genres[j]==i[0]:
              temp[j]=plays[j]
        temp1=sorted(temp.items(), key=lambda x: x[1], reverse=True)
        result.append(temp1[0][0])
        if len(temp1)>1:
            result.append(temp1[1][0])
    #[4, 1, 3, 0]
    return result