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

JinUk Lee·2023년 2월 14일
0

프로그래머스

목록 보기
15/47

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



def solution(genres, plays):
    answer = []

    music = dict()
    music_plays = dict()

    for i in range(len(plays)):
        if genres[i] not in music:
            music[genres[i]] = plays[i]
        else:
            music[genres[i]] += plays[i]

        if genres[i] not in music_plays:
            music_plays[genres[i]] = [(plays[i],i)]
        else:
            music_plays[genres[i]].append((plays[i],i))


    music_list = list(music.items())
    music_list.sort(key=lambda x:(-x[1]))

    for i in music_plays:
        music_plays[i].sort(key=lambda x:(-x[0]))

    for i in music_list:

        if len(music_plays[i[0]]) ==1:
            answer.append(music_plays[i[0]][0][1])
        else:
            answer.append(music_plays[i[0]][0][1])
            answer.append(music_plays[i[0]][1][1])

    print(answer)

    return answer

genres =["classic", "pop", "classic", "classic", "pop"]

plays = [500, 600, 150, 800, 2500]

solution(genres,plays)

딕셔너리를 두개 만들었다.

하나의 딕셔너리에서는 총 재생횟수를 구하고 정렬하고

다른 딕셔너리에서는 재생횟수와 인덱스 번호를 넣고 마찬가지로 정렬했다.

그뒤 재생수가 많은 2개의 인덱스를 answer에 추가해주었다.

profile
개발자 지망생

0개의 댓글