Skip to content

Commit

Permalink
23 완
Browse files Browse the repository at this point in the history
  • Loading branch information
seongwon02 committed Jul 6, 2024
1 parent 60f38c9 commit eea5227
Showing 1 changed file with 39 additions and 0 deletions.
39 changes: 39 additions & 0 deletions SWKIM/21to30/23.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
def solution(genres, plays):
answer = []
music = {} # 각 장르의 인덱스와 play를 저장하는 dict
record = {} # 각 장르의 play 총합을 저장하는 dict
idx = 0

# music의 vlaue 값을 2차원 배열로 저장하며 저장되는 방식은 [index, play]
# record에는 각 장르에 맞는 play를 더해 총합을 구하는 방식
for g, p in zip(genres, plays):
if g in music:
music[g].append([idx, p])
record[g] += p
else:
music[g] = [[idx, p]]
record[g] = p

idx += 1

# play 총합을 기준으로 장르를 내림차순으로 정렬
sorted_genres = sorted(record, key= lambda x: record[x], reverse=True)

# 장르에 속한 곡이 하나일 경우와 2개 이상인 경우를 구분
for i in sorted_genres:
if len(music[i]) < 2: # 장르에 속한 곡이 하나일 경우 정렬하지 않고 바로 추가
first = music[i][0]
answer.append(first[0])
else: # 장르에 속한 곡이 2개 이상일 때 play를 기준으로 내림차순 정렬 진행
music[i] = sorted(music[i], key= lambda x: x[1], reverse=True)

first = music[i][0]
second = music[i][1]

answer.append(first[0])
answer.append(second[0])

return answer

print(solution(["classic", "pop", "classic", "classic", "pop"], [500, 600, 150, 800, 2500]))

0 comments on commit eea5227

Please sign in to comment.