강의로 돌아가기
krBlackCat

어느부분에서 실수했는지 잘 모르겠습니다. - Python3, 주석첨부

이론상으로는 제 코드가 맞는거 같은데 거의 틀려버리네요..ㅠ 근데 여기서 어느부분을 고쳐야할지 모르겠어서 좀 막막합니다.

혹시 테스트 문제라도 좀 알려주시면 제가 보고 어느부분이 틀린지 확인후 고치겠습니다.

import collections

def solution(genres, plays):
    answer = []
    di = {}

#예제 기준 아래와 같은 형식으로 맞춤          장르{인덱스번호: 재생횟수}
#<class 'dict'>: {'classic': {0: 500, 2: 150, 3: 800}, 'pop': {1: 600, 4: 2500}}

    for i in range(len(plays)):
        if di.get(genres[i]) == None:
            di[genres[i]] = {i:plays[i]}
        else:
            di[genres[i]][i] = plays[i]

    for _ in range(len(di)):
        max_index = plays.index(max(plays)) #가장 많이 재생된 인덱스번호
        max_genre = genres[max_index]         #가장 많이 재생된 인덱스번호를 기준으로 장르 조회

       #예제기준 pop    
       #OrderedDict([(4, 2500), (1, 600)]) 장르를 검색후 가장 많이 재생된 횟수를 기준으로 정렬 , 횟수가 동일하면 인덱스 순서로 정렬
        od = collections.OrderedDict(sorted(di[max_genre].items(), key=lambda x: (-x[1], x[0])))

        for i,key in enumerate(od.keys()):
            if i < 2:  
                answer.append(key) # 두곡까지 answer에 추가
            plays[key] = -1 # 해당장르 재생횟수를 전부 -1로 바꾸어 중복안되도록 수정

    return answer
1 개의 답변
krBlackCat

자답입니다. 문제를 잘못읽었습니다..ㅠ

max_index = plays.index(max(plays)) #가장 많이 재생된 인덱스번호
이게 아니라 합계를 구해야하더라고요 ㅠㅠ

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.