Programmers

[python] 베스트앨범

DylanMsK 2019. 9. 6. 00:04

문제 출처

베스트앨범

 

풀이


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