728x90
๋ฐ์ํ
"""
์คํธ๋ฆฌ๋ฐ ์ฌ์ดํธ์์ ์ฅ๋ฅด ๋ณ๋ก ๊ฐ์ฅ ๋ง์ด ์ฌ์๋ ๋
ธ๋๋ฅผ
๋ ๊ฐ์ฉ ๋ชจ์ ๋ฒ ์คํธ ์จ๋ฒ์ ์ถ์ํ๋ ค ํฉ๋๋ค. ๋
ธ๋๋ ๊ณ ์ ๋ฒํธ๋ก ๊ตฌ๋ถํ๋ฉฐ,
๋
ธ๋๋ฅผ ์๋กํ๋ ๊ธฐ์ค์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1. ์ํ ๋
ธ๋๊ฐ ๋ง์ด ์ฌ์๋ ์ฅ๋ฅด๋ฅผ ๋จผ์ ์๋กํฉ๋๋ค.
2. ์ฅ๋ฅด ๋ด์์ ๋ง์ด ์ฌ์๋ ๋
ธ๋๋ฅผ ๋จผ์ ์๋กํฉ๋๋ค.
3. ์ฅ๋ฅด ๋ด์์ ์ฌ์ ํ์๊ฐ ๊ฐ์ ๋
ธ๋ ์ค์์๋ ๊ณ ์ ๋ฒํธ๊ฐ ๋ฎ์ ๋
ธ๋๋ฅผ ๋จผ์ ์๋กํฉ๋๋ค.
๋
ธ๋์ ์ฅ๋ฅด๋ฅผ ๋ํ๋ด๋ ๋ฌธ์์ด ๋ฐฐ์ด genres์ ๋
ธ๋๋ณ ์ฌ์ ํ์๋ฅผ ๋ํ๋ด๋
์ ์ ๋ฐฐ์ด plays๊ฐ ์ฃผ์ด์ง ๋, ๋ฒ ์คํธ ์จ๋ฒ์ ๋ค์ด๊ฐ ๋
ธ๋์ ๊ณ ์ ๋ฒํธ๋ฅผ
์์๋๋ก return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ์ธ์.
"""
def solution(genres, plays):
answer = []
site = {}
for i, (genre, play) in enumerate(zip(genres,plays)):
if genre in site.keys():
site[genre] = [site[genre][0]+play, site[genre][1]+[[play,i]]]
else:
site[genre] = [play, [[play,i]]]
for _, indexs in sorted(site.items(), key=lambda x: -x[1][0]):
for index in sorted(indexs[1], key=lambda x: -x[0])[:2]:
answer.append(index[1])
return answer
"""
{'classic': [1450, [[500, 0], [150, 2], [800, 3]]], 'pop': [3100, [[600, 1], [2500, 4]]]}
๋๋ ์์ ๋์
๋๋ฆฌ์ฒ๋ผ ์ฅ๋ฅด๋ณ๋ก ์ดํฉ์ ๊ณ์ฐํ๊ณ ,
ํ๋ ์ดํ์์ ์ธ๋ฑ์ค๊ฐ์ ์ ์ฅํ์ฌ sortํ์ฌ ์ฐ๋ ค๊ณ ํ๋ค.
- 18~22 line
๋จผ์ site๋ผ๋ ๋์
๋๋ฆฌ๋ฅผ ๋ง๋ค์ด์ for๋ฌธ์ ๋์ ๊ฐ์ ๋ฃ์๋ค.
- 24 line
๊ทธ๋ฆฌ๊ณ ๋์
๋๋ฆฌ์์ดํ
์ ์ดํฉ(1450, 3100)์ ๊ธฐ์ค์ผ๋ก ์ํธํ์ฌ ํํ์ _์ indexs๋ก ๋๋ด๋ค.
- 25 line
๊ทธ indexs([1450, [[500, 0], [150, 2], [800, 3]])๋ฅผ ๋ค์
ํ๋ ์ดํ์๊ฐ ํฐ์(500, 150, 800 -> 800, 500, 150)์ผ๋ก ์ํธํ์๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ sortํ ๋ฆฌ์คํธ๋ฅผ ์ต๋ 2๊ฐ([:2])๊น์ง๋ง ์ฌ์ฉํ์ฌ ์ฐจ๋ก๋๋ก answer์ ๋ฃ์๋ค.
๋ฃ๋๊ฑด [[500, 0], [150, 2], [800, 3]]์์ ์ธ๋ฑ์ค๊ฐ์ ๋ฃ์๋ค. (index[1])
"""
728x90
๋ฐ์ํ
๋๊ธ