728x90
https://programmers.co.kr/learn/courses/30/lessons/42579?language=python3
딕셔너리에 장르별 총 재생횟수를 넣어주고
리스트에 노래별 장르, 재생횟수, 인덱스값을 넣어주었다.
정렬을해주고
답을 도출했다.
한 2달전에 풀때 뭔지 싶어서 건들지도 못했던 문젠데
좀 늘었나; 파이썬으로 바꾼게 컸나; 뭔진 모르겠지만
푸는데 이십분 안걸린것같다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
def solution(genres, plays):
answer = []
genres_dic = {}
g_p_list = []
# 딕셔너리에 넣고
for i in range(len(genres)):
if genres[i] not in genres_dic:
genres_dic[genres[i]] = plays[i]
else:
genres_dic[genres[i]] += plays[i]
# 장르와 재생횟수를 한개의 리스트로 만들어줌
g_p_list.append([genres[i], plays[i], i])
# 튜플형태로 총 재생횟수를 기준 내림차순 정렬
genres_dic = sorted(genres_dic.items(), key=lambda item: -item[1])
# 장르별 정렬, 인덱스는 큰순으로 정렬
g_p_list = sorted(g_p_list, key=lambda x: (x[0], -x[1], x[2]))
for g in genres_dic:
cnt = 0
for i in range(len(g_p_list)):
if cnt == 2:
break
if g[0] == g_p_list[i][0]:
answer.append(g_p_list[i][2])
cnt += 1
return answer
|
cs |
728x90
'PS > 프로그래머스' 카테고리의 다른 글
[프로그래머스 LV 3] 여행경로 (파이썬/python) (0) | 2021.06.21 |
---|---|
[프로그래머스 LV 3] 단어 변환 (파이썬/python) (0) | 2021.06.19 |
[프로그래머스 LV 3] 스티커 모으기 (파이썬/python) (0) | 2021.06.17 |
[프로그래머스 LV 3] 야근 지수 (파이썬/python) (0) | 2021.06.17 |
[프로그래머스 LV 3] 멀리 뛰기 (파이썬/python) (0) | 2021.06.17 |