import collections
def solution(genres, plays):
plays_dic = collections.defaultdict(list)
genres_dic = collections.defaultdict(list)
for i in range(len(genres)):
plays_dic[plays[i]].append(i)
genres_dic[genres[i]].append(plays[i])
# print(plays_dic)
genres_ordered_by_plays = sorted(genres_dic.items(), key = lambda x : -sum(x[1]))
answer = []
for genre, play in genres_ordered_by_plays:
play.sort()
if len(play) >=2 :
plays_dic[play[-1]].sort()
if play[-1] == play[-2]:
answer.extend(plays_dic[play[-1]][0:2])
else:
answer.append(plays_dic[play[-1]][0])
answer.append(plays_dic[play[-2]][0])
elif len(play) == 1:
answer.append(plays_dic[play[0]][0])
return answer
분명 수록 기준을 다 준수했는데도 수록 기준을 엄격하게 검사하는 테스트 케이스 2번, 15번이 안 되어서 이상했다.
그런데 내가 첫번째 for문에서 plays_dic에 중복된 play들을 추가하지 않고 있었다. ㄱ= 참 어이없는 경우..
'조열심 카테고리 > 알고리즘' 카테고리의 다른 글
| [프로그래머스] 영어 끝말잇기 (0) | 2022.09.25 |
|---|---|
| [프로그래머스] 카펫 (0) | 2022.09.25 |
| [공부] 인공지능을 위한 알고리즘과 자료구조: 이론, 코딩, 그리고 컴퓨팅 사고 4주차 (1) | 2022.09.20 |
| [프로그래머스] N개의 최소공배수 (0) | 2022.09.20 |
| [프로그래머스] 구명보트 (0) | 2022.09.19 |