티스토리 뷰


입력받은 plays와 genres를 튜플 형태로 변환해 ipt에 저장한다.

collections.Counter()를 사용해 장르별로 실행된 횟수를 저장한다.

많이 재생된 장르 순서대로 plays와 genres를 튜플 형태로 저장한 st를 생성한다.

st는 plays를 기준으로 해 내림차순으로 정렬하고 최대 2개까지 lst에 저장한다.

lst에 저장된 튜플 값을 순서대로 ipt에서 찾아 위치값을 ans에 저장한다. 

이미 ans에 위치값이 존재할 때는 그 위치값에서 1을 더해 다시 찾아 저장한다. 

문제풀이

import collections
from operator import itemgetter

def solution(genres, plays):
	ipt = [i for i in zip(plays,genres)] 
	genre = collections.Counter()
	lst = list()
	ans = list()

	for g, p in zip(genres,plays):
		genre += collections.Counter({g : p})
	
	for t,x in sorted(genre.items(), key = itemgetter(1), reverse = True):
		st = []
		for p, g in zip(plays, genres):
			if g == t:
				st.append((p,g))
		st = sorted(st, reverse=True)
		if len(st) >= 2:
			lst += st[0:2]
		else:
			lst += st
	
	for i in range(0,len(lst)):
		if ipt.index(lst[i]) in ans:
			ans.append(ipt.index(lst[i],ipt.index(lst[i])+1))
		else:
			ans.append(ipt.index(lst[i]))
	return ans


'문제 풀이 > Programmers' 카테고리의 다른 글

[python3][level 2] 프린터  (0) 2019.04.07
[python3][level 2] 쇠막대기  (0) 2019.04.05
[python3][level 3] 타일 장식물  (0) 2019.03.29
[python3][level 2] 위장  (0) 2019.03.28
[python3][level 2] 전화번호 목록  (0) 2019.03.27
댓글
«   2024/12   »
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
29 30 31
Total
Today
Yesterday