|
์ฝ๋ ์์ฑํ๊ธฐ
def solution(genres, plays):
g_list = {} #"genre" : [(์ฌ์ํ์, ๊ณ ์ ๋ฒํธ)]
for i in range(len(genres)):
if genres[i] not in g_list:
g_list[genres[i]] = []
g_list[genres[i]].append((plays[i], i))
g_play = [] #(์ด์ฌ์ํ์, ์ฅ๋ฅด)
for g in g_list:
g_num = 0
for s_play in g_list[g]:
g_num += s_play[0]
g_play.append((g_num, g))
g_play.sort(reverse = True)
answer = []
for i in range(len(g_play)):
g = g_list[g_play[i][1]]
g.sort(reverse = True)
a = g[0]
try:
b = g[1]
if a[0] == b[0]:
answer.append(b[1])
answer.append(a[1])
else:
answer.append(a[1])
answer.append(b[1])
except:
answer.append(a[1])
return answer
Python
๋ณต์ฌ
|
์ฝ๋ ์ค๋ช
ํ๊ธฐ
1.
"genre" : [(์ฌ์ํ์, ๊ณ ์ ๋ฒํธ)] ํํ๋ก genres์ plays๋ฅผ loop๋ฅผ ๋๋ฉฐ ๋์
๋๋ฆฌ๋ฅผ ์ฑ์ด๋ค.
2.
๋ง๋ค์ด์ง ๋์
๋๋ฆฌ๋ฅผ ๋๋ฉฐ ์ฅ๋ฅด ๋น ์ด ์ฌ์ํ์๋ฅผ ์ ์ฅํ๊ธฐ ์ํด (์ด ์ฌ์ํ์, ์ฅ๋ฅด) ํํ๋ก ๋ฆฌ์คํธ๋ฅผ ๋ง๋ ๋ค.
3.
์ด ๋ฆฌ์คํธ๋ฅผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค.
4.
๋ฆฌ์คํธ๋ฅผ ์ํํ๋ฉฐ ๋์
๋๋ฆฌ์์ ์ฅ๋ฅด์ (์ฌ์ํ์, ๊ณ ์ ๋ฒํธ) ๋ฆฌ์คํธ๋ฅผ ๊ฐ์ ธ์จ๋ค.
5.
์ฅ๋ฅด ๋น ๋
ธ๋ ๋ฆฌ์คํธ๋ฅผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค.
a.
์ฒซ ๋ฒ์งธ, ๋๋ฒ์งธ ์์๋ฅผ ๊ฐ์ ธ์จ๋ค.
i.
๋๋ฒ์งธ ์์๊ฐ ์์ผ๋ฉด ์ฒซ๋ฒ์งธ ์์๋ง answer์ ๋ฑ๋กํ๋ค.
b.
์ฒซ ๋ฒ์งธ ์์์ ๋ ๋ฒ์งธ ์์์ ์ฌ์ํ์๊ฐ ๊ฐ์ผ๋ฉด ๊ณ ์ ๋ฒํธ๊ฐ ๋ฎ์ ๋๋ฒ์งธ ์์๋ฅผ ๋จผ์ ๋ฑ๋กํ๊ณ ์ฒซ๋ฒ์งธ๋ฅผ ๋ฑ๋กํ๋ค.
c.
๊ฐ์ง ์์ผ๋ฉด ์์๋๋ก ๋ฑ๋กํ๋ค.
...
for i in range(len(g_play)):
g = sorted(g_list[g_play[i][1]], key=lambda m: (-m[0], m[1]))
answer.append(g[0][1])
try:
answer.append(g[1][1])
except:
pass
return answer
Python
๋ณต์ฌ