본문 바로가기
Programmers

[python] 베스트앨범

by DylanMsK 2019. 9. 6.

문제 출처

베스트앨범

 

풀이


def solution(genres, plays):
    answer = []
    genres_cnt = {}
    for i in range(len(genres)):
        answer.append([i, genres[i], plays[i]])

        if genres_cnt.get(genres[i]):
            genres_cnt[genres[i]] += plays[i]
        else:
            genres_cnt[genres[i]] = plays[i]

    genres_rank = sorted(list(genres_cnt.keys()), key=lambda x: genres_cnt[x])
    answer.sort(key=lambda x: (genres_rank.index(x[1]), x[2], -x[0]), reverse=True)

    rank_cnt = {genre: 0 for genre in genres_cnt.keys()}
    res = []
    for i in answer:
        if rank_cnt[i[1]] < 2:
            rank_cnt[i[1]] += 1
            res.append(i[0])
    return res
    

'Programmers' 카테고리의 다른 글

[python] 정수 삼각형  (0) 2019.09.18
[python] 체육복  (0) 2019.09.06
[python] 위장  (0) 2019.09.06
[python] 전화번호 목록  (0) 2019.09.03
[python] 완주하지 못한 선수  (0) 2019.09.03