프로그래머스 / 베스트앨범 / python

맹민재·2023년 5월 2일
0

알고리즘

목록 보기
86/134
def solution(genres, plays):
    d = dict()
    answer = []
    for i, genre in enumerate(genres):
        try:
            if genre in d:
                d[genre][0] += plays[i]
                d[genre].append([i, plays[i]])
            else:
                d[genre] = [plays[i], [i, plays[i]]]
        except:
            print(d)
    
    for genre in sorted(d.values(), key = lambda x: x[0], reverse = True):
        l = 2 if len(genre) >= 2 else len(genre)
        for i, _ in sorted(genre[1:], key= lambda x: x[1], reverse=True)[:l]:
            answer.append(i)
        
    
    return answer

딕셔너리 자료구조를 통해 해결한 문제
장르를 key 값으로 해서 딕셔너리를 만든다. value느 리스트로 해서 첫번째 인덱스는 해당 장르의 총 재생횟수를 저장하고 그다음 요소에 각 노래에 인덱스와 재생횟수를 저장

저장 후에 총 재생횟수로 정렬하고 각 장르별 재생횟수로 정렬해서 정답을 구할 수 있다.

profile
ㄱH ㅂrㄹ ㅈr

0개의 댓글