๋ฌธ์ ์ค๋ช
์คํธ๋ฆฌ๋ฐ ์ฌ์ดํธ์์ ์ฅ๋ฅด ๋ณ๋ก ๊ฐ์ฅ ๋ง์ด ์ฌ์๋ ๋ ธ๋๋ฅผ ๋ ๊ฐ์ฉ ๋ชจ์ ๋ฒ ์คํธ ์จ๋ฒ์ ์ถ์ํ๋ ค ํฉ๋๋ค. ๋ ธ๋๋ ๊ณ ์ ๋ฒํธ๋ก ๊ตฌ๋ถํ๋ฉฐ, ๋ ธ๋๋ฅผ ์๋กํ๋ ๊ธฐ์ค์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์ํ ๋ ธ๋๊ฐ ๋ง์ด ์ฌ์๋ ์ฅ๋ฅด๋ฅผ ๋จผ์ ์๋กํฉ๋๋ค.
- ์ฅ๋ฅด ๋ด์์ ๋ง์ด ์ฌ์๋ ๋ ธ๋๋ฅผ ๋จผ์ ์๋กํฉ๋๋ค.
- ์ฅ๋ฅด ๋ด์์ ์ฌ์ ํ์๊ฐ ๊ฐ์ ๋ ธ๋ ์ค์์๋ ๊ณ ์ ๋ฒํธ๊ฐ ๋ฎ์ ๋ ธ๋๋ฅผ ๋จผ์ ์๋กํฉ๋๋ค.
๋ ธ๋์ ์ฅ๋ฅด๋ฅผ ๋ํ๋ด๋ ๋ฌธ์์ด ๋ฐฐ์ด genres์ ๋ ธ๋๋ณ ์ฌ์ ํ์๋ฅผ ๋ํ๋ด๋ ์ ์ ๋ฐฐ์ด plays๊ฐ ์ฃผ์ด์ง ๋, ๋ฒ ์คํธ ์จ๋ฒ์ ๋ค์ด๊ฐ ๋ ธ๋์ ๊ณ ์ ๋ฒํธ๋ฅผ ์์๋๋ก return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ์ธ์.
์ ํ์ฌํญ
- genres[i]๋ ๊ณ ์ ๋ฒํธ๊ฐ i์ธ ๋ ธ๋์ ์ฅ๋ฅด์ ๋๋ค.
- plays[i]๋ ๊ณ ์ ๋ฒํธ๊ฐ i์ธ ๋ ธ๋๊ฐ ์ฌ์๋ ํ์์ ๋๋ค.
- genres์ plays์ ๊ธธ์ด๋ ๊ฐ์ผ๋ฉฐ, ์ด๋ 1 ์ด์ 10,000 ์ดํ์ ๋๋ค.
- ์ฅ๋ฅด ์ข ๋ฅ๋ 100๊ฐ ๋ฏธ๋ง์ ๋๋ค.
- ์ฅ๋ฅด์ ์ํ ๊ณก์ด ํ๋๋ผ๋ฉด, ํ๋์ ๊ณก๋ง ์ ํํฉ๋๋ค.
- ๋ชจ๋ ์ฅ๋ฅด๋ ์ฌ์๋ ํ์๊ฐ ๋ค๋ฆ ๋๋ค.
์ ์ถ๋ ฅ ์
classic ์ฅ๋ฅด๋ 1,450ํ ์ฌ์๋์์ผ๋ฉฐ, classic ๋ ธ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๊ณ ์ ๋ฒํธ 3: 800ํ ์ฌ์
- ๊ณ ์ ๋ฒํธ 0: 500ํ ์ฌ์
- ๊ณ ์ ๋ฒํธ 2: 150ํ ์ฌ์
pop ์ฅ๋ฅด๋ 3,100ํ ์ฌ์๋์์ผ๋ฉฐ, pop ๋ ธ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๊ณ ์ ๋ฒํธ 4: 2,500ํ ์ฌ์
- ๊ณ ์ ๋ฒํธ 1: 600ํ ์ฌ์
๋ฐ๋ผ์ pop ์ฅ๋ฅด์ [4, 1]๋ฒ ๋ ธ๋๋ฅผ ๋จผ์ , classic ์ฅ๋ฅด์ [3, 0]๋ฒ ๋ ธ๋๋ฅผ ๊ทธ๋ค์์ ์๋กํฉ๋๋ค.
- ์ฅ๋ฅด ๋ณ๋ก ๊ฐ์ฅ ๋ง์ด ์ฌ์๋ ๋ ธ๋๋ฅผ ์ต๋ ๋ ๊ฐ๊น์ง ๋ชจ์ ๋ฒ ์คํธ ์จ๋ฒ์ ์ถ์ํ๋ฏ๋ก 2๋ฒ ๋ ธ๋๋ ์๋ก๋์ง ์์ต๋๋ค.
ํ์ด ์ฝ๋
def solution(genres, plays):
answer = []
hash_table = {}
for i in range(len(genres)):
genre = genres[i]
if genre not in hash_table:
hash_table[genre] = {'plays' : plays[i], 'songs' : []}
hash_table[genre]['songs'].append([plays[i], i])
else:
hash_table[genre]['plays'] += plays[i]
hash_table[genre]['songs'].append([plays[i], i])
sorted_table = sorted(hash_table.items(), key=lambda x: x[1]['plays'], reverse=True)
for tuples in sorted_table:
genre, play_dict = tuples
play_dict['songs'].sort(key=lambda x:(-x[0], x[1]))
for i in range(min(2, len(play_dict['songs']))):
answer.append(play_dict['songs'][i][1])
return answer
ํด์๋ฅผ ์ด์ฉํด ํ์ดํ๋ค.
๋ฌธ์ ๋ฅผ ํ์ด ํ๋ ๊ณผ์ ๋ณด๋จ, ๋ฌธ์ ๋ฅผ ์ ์ดํดํ ์ ์๋ ๋ฅ๋ ฅ์ด ๋ ์ค์ํด ๋ณด์๋ค.
ํด์์ ์ฅ๋ฅด์ ๋ฐ๋ผ ์ ์ฒด ํ๋ ์ดํ ์, ๊ฐ ๋ ธ๋์ ๋ ธ๋๊ฐ ์ฌ์๋ ํ์๋ฅผ ์ ์ฅํ๋ ๋ฐฐ์ด์ item์ผ๋ก ๊ฐ๊ฒ ํ๋ค.
๊ทธ ๋ค์, ํด์๋ฅผ ์ ๋ ฌํ๋๋ฐ hash_table.items()๋ฅผ ๋์ ๋๋ฆฌ์ 'plays' ์์๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ์ ์์ผ ๋ฌธ์ ์ ์กฐ๊ฑด์ ๋ง์ถ๋ค.
๊ฐ ๋ ธ๋๋ฅผ ์ฌ์ ํ์๋ฅผ ์ฐ์ ์ ์ผ๋ก ์ ๋ ฌํ๊ณ , ๊ฐ๋ค๋ฉด ๋จผ์ ๋์จ ์์ผ๋ก ์ ๋ ฌํ๋ค.
์ต๋ 2๊ฐ๊น์ง ์๋ก์ ํ ์ ์์ผ๋ฏ๋ก, min ํจ์๋ฅผ ์ฌ์ฉํด ๋ฐ๋ณต๋ฌธ์ ์ ์ดํ๋ค.
'๐ ์ฝ๋ฉํ ์คํธ ๋๋น : PS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ์ซ์ ๊ฒ์ (level3, python) (1) | 2022.09.20 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ ์ฐพ๊ธฐ (level2, python) (0) | 2022.09.20 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ฐ์ฅ ํฐ ์ (level2, python) (1) | 2022.09.19 |
[ํ๋ก๊ทธ๋๋จธ์ค] 2xn ํ์ผ๋ง (level2, python) (0) | 2022.09.19 |
[ํ๋ก๊ทธ๋๋จธ์ค] 2๊ฐ ์ดํ๋ก ๋ค๋ฅธ ๋นํธ (level2, python) (0) | 2022.09.19 |