https://programmers.co.kr/learn/courses/30/lessons/42579
1. 유형
해시, 정렬
2. 풀이
1) dictionary[장르] = 조회수 형태로 맵을 만듬
2) lists[장르] = [(조회수, 고유번호)] 형태로 맵을 만듬
3) dictionary를 조회수 기준 내림차순 정렬
4) lists를 조회수 기준 내림차순, 고유번호 오름차순으로 정렬. 단, 2개 까지만 조회
3. 코드
def solution(genres, plays):
answer = []
diction = dict()
lists = dict()
for i in range(len(genres)):
if genres[i] not in diction:
diction[genres[i]] = plays[i]
lists[genres[i]] = [(plays[i], i)]
else:
diction[genres[i]] += plays[i]
lists[genres[i]].append((plays[i], i))
arr=list(diction.items())
arr.sort(key = lambda x: -x[1])
for gen, play in arr:
lists[gen].sort(key = lambda x: (-x[0], x[1]))
cnt =0
for p, index in lists[gen]:
answer.append(index)
cnt+=1
if cnt>=2: break
return answer
'알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - (Java) 프렌즈4블록 (0) | 2021.06.06 |
---|---|
프로그래머스 - (Java) 방금 그곡 (0) | 2021.06.05 |
프로그래머스 - 가장 먼 노드 (0) | 2021.05.25 |
프로그래머스 - 기지국 설치 (0) | 2021.05.24 |
프로그래머스 - 키패드 누르기 (0) | 2021.05.22 |