*문제 출처는 프로그래머스에 있습니다.
문제 제목: 베스트앨범 (3단계)
문제 사이트: https://school.programmers.co.kr/learn/courses/30/lessons/42579
문제 설명
나의 풀이
def solution(genres, plays):
answer = []
dic_genr = {}
dic_play = {}
idx = 0
for i, j in zip(genres, plays):
if i not in dic_genr:
dic_genr[i] = [(idx, j)]
dic_play[i] = j
else:
dic_genr[i].append((idx, j))
dic_play[i] += j
idx += 1
for (k, v) in sorted(dic_play.items(), key=lambda x: x[1], reverse=True):
for (i, p) in sorted(dic_genr[k], key=lambda x: x[1], reverse=True)[:2]:
answer.append(i)
return answer
해쉬를 이용하여 dic_play[i]는 가장 재생이 많이된 장르를 찾고 dic_genr[i]는 가장 재생이 많이된 장르 중에서 가장 재생이 많이된 노래를 찾는다.
그러고 그걸 내림차순으로 정렬하여 answer에 추가하면 된다.
※ 알아야 할 것
해쉬를 이용하는 문제는 딕셔너리를 사용하여 문제를 풀면 된다.
'코딩테스트(프로그래머스 & 백준) > 프로그래머스-Python' 카테고리의 다른 글
Programmers / 단속카메라 / Python (0) | 2024.05.24 |
---|---|
Programmers / 큰 수 만들기 / Python (0) | 2024.05.23 |
Programmers / [1차] 다트 게임 / Python (0) | 2024.05.22 |
Programmers / 다리를 지나는 트럭 / Python (0) | 2024.05.20 |
Programmers / 2 x n 타일링 / Python (0) | 2024.05.16 |