본문 바로가기

알고리즘/프로그래머스(Python)

해시 - 베스트 앨범 / 파이썬

def solution(genres, plays):
    dic, hap = {}, {}
    i = 0
    for g, p in zip(genres, plays):
        if g not in dic:
            dic[g] = [[p, i]]
            hap[g] = p
        else:
            dic[g].append([p, i])
            hap[g] += p
        i += 1
        
    s_hap = sorted(hap.items(), key=lambda x: x[1], reverse=True)
    
    ret = []
    for k, _ in s_hap:
        lst = sorted(dic[k], key=lambda x: x[0], reverse=True)
        if len(lst) > 2: lst = lst[:2]
        for _, num in lst:
            ret.append(num)
    return ret

 

 

programmers.co.kr/learn/courses/30/lessons/42579#

 

코딩테스트 연습 - 베스트앨범

스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가

programmers.co.kr