[알고리즘/프로그래머스] - 베스트앨범(python)

유현민·2022년 5월 30일
0

알고리즘

목록 보기
195/253
post-custom-banner

문제

  1. 장르별 플레이 횟수와 음악별 플레이 횟수로 나누었다.

  2. 장르별 플레이 횟수를 sort하여 for문을 돌린다.

  3. 곡 별 플레이 횟수를 sort하여 하나씩 answer에 추가한다. 곡당 2개씩... 따라서 cnt를 주고 2이면 break를 해주었다.

def solution(genres, plays):
    song = {}
    genre = {}
    answer = []
    for i, (g, p) in enumerate(zip(genres, plays)):
        if g not in song:
            song[g] = [(i, p)]
        else:
            song[g].append((i, p))

        if g not in genre:
            genre[g] = p
        else:
            genre[g] += p

    for (k, v) in sorted(genre.items(), key=lambda x: x[1], reverse=True):
        cnt = 0
        for (i, p) in sorted(song[k], key=lambda x: x[1], reverse=True):
            if cnt == 2:
                break
            answer.append(i)
            cnt += 1

    return answer
profile
smilegate
post-custom-banner

0개의 댓글