[pro] 베스트앨범

letsbebrave·2022년 5월 27일
0

codingtest

목록 보기
132/146

문제

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

풀이

def solution(genres, plays):
    dict = {}
    plist = {}
    for i in range(len(plays)):
        dict[i] = [plays[i], genres[i]]
        plist[genres[i]] = []
    
    # dict {0: [500, 'classic'], 1: [600, 'pop'], 2: [150, 'classic'], 3: [800, 'classic'], 4: [2500, 'pop']}

    gen = {}
    for i in genres:
        gen[i] = 0
        
    for i in dict:
        for j in genres:
            if dict[i][1] == j:
                gen[j] += dict[i][0]
                break

    for i in range(len(plays)):
        plist[genres[i]] += [[i, plays[i]]]

    for v in plist.values():
        v.sort(key=lambda x:(-x[1], x[0]))
    
    gen = sorted(gen.items(), key=lambda x: -x[1])

    answer = []
    
    for g, p in gen:
        for k in range(min(len(plist[g]), 2)):
            answer.append(plist[g][k][0])
    
    print(answer)            
    return answer

genres = ["classic", "pop", "classic", "classic", "pop"]
plays = [500, 600, 150, 800, 2500]

solution(genres, plays)
profile
그게, 할 수 있다고 믿어야 해

0개의 댓글

관련 채용 정보