프로그래머스 베스트 앨범
2021. 10. 12. 19:03ㆍ문제풀기/프로그래머스
https://programmers.co.kr/learn/courses/30/lessons/42579
파이썬의 heapq는 최소 힙이기 때문에 정렬에 사용할 값에 마이너스를 붙여주면 최대 힙으로 활용할 수 있다.
import heapq
def solution(genres, plays):
answer = []
genre_array = dict()
genre_total = []
for i in range(len(genres)):
if genres[i] not in genre_array:
genre_array[genres[i]] = []
heapq.heappush(genre_array[genres[i]], (-plays[i], i))
for g in genre_array:
total = 0
for p,i in genre_array[g]:
total += p
heapq.heappush(genre_total,(total,g))
while genre_total:
total, now_genre = heapq.heappop(genre_total)
for _ in range(2):
if genre_array[now_genre]:
p,i = heapq.heappop(genre_array[now_genre])
answer.append(i)
return answer
'문제풀기 > 프로그래머스' 카테고리의 다른 글
프로그래머스 : 2020 카카오 공채 블록 이동하기 (0) | 2021.10.14 |
---|---|
★프로그래머스 2021 카카오 채용연계형 인턴십 표 편집 (0) | 2021.10.13 |
프로그래머스 위장 (0) | 2021.10.12 |
프로그래머스 : 괄호 회전하기 (0) | 2021.10.08 |
프로그래머스 : 후보키 (0) | 2021.10.08 |