[프로그래머스/파이썬] 해시 베스트앨범
https://programmers.co.kr/learn/courses/30/lessons/42579
알고리즘 분류
- 해시
문제풀이
sum_array는 array의 각 장르별 재생횟수 총합을 저장하는데 가장 총합이 큰 장르 순서대로 정렬해준다.
그리고 각 장르별로 재생횟수 내림차순으로 정렬하면서 재생횟수가 같은 경우 고유 번호가 낮은 노래를 먼저 수록해야 하므로 고유번호는 오름차순으로 정렬한다.
소스코드
def solution(genres, plays):
set_genr=set(genres)
array={i:[] for i in set_genr}
sum_array={i:0 for i in set_genr}
for i in range(len(plays)):
array[genres[i]].append((plays[i],i))
sum_array[genres[i]]+=plays[i]
sum_array=sorted(sum_array.items(), key=lambda x: x[1], reverse=True)
for i in range(len(sum_array)):
kinds=sum_array[i][0]
array[kinds].sort(key=lambda x: (-x[0], x[1]))
result=[]
for i in range(len(sum_array)):
for j in range(2):
result.append(array[sum_array[i][0]][j][1])
if len(array[sum_array[i][0]])==1:
break
return result
Author And Source
이 문제에 관하여([프로그래머스/파이썬] 해시 베스트앨범), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@bye9/프로그래머스파이썬-해시-베스트앨범저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)