ํ๋ก๊ทธ๋๋จธ์ค์ ์ฝ๋ฉ์ฐ์ต ์ค level3์ hash ์นดํ ๊ณ ๋ฆฌ์ "๋ฒ ์คํธ์จ๋ฒ" ๋ฌธ์ ํ์ด
(๋ฌธ์ : ์๋ ๋งํฌ๐๐๐)
๋ฌธ์ ํ์ด
๋ฌธ์ ๊ฐ ์์ฒญ ์ด๋ ต์ง๋ ์์๋ฐ.. ๋ด ์๊ฐ์๋ ์ค๋ช ์ด ์น์ ํ์ง ์์๋ค๊ณ ์๊ฐํ๋ค.
์ผ๋จ ๋ด๊ฐ ํท๊ฐ๋ ธ๋ ์ง์ ์
- ์ ์ฒด ๊ณก๋ค ์ค์์ ์กฐํ์๊ฐ ๊ฐ์ฅ ๋ง์ ๊ณก์ด ํด๋นํ๋ ์ฅ๋ฅด๋ถํฐ ์จ๋ฒ์ ๋ด๋๋ค
- ์ฅ๋ฅด๋ณ๋ก ์กฐํ์๋ฅผ ํฉํ์ฌ ๊ฐ์ฅ ์กฐํ์๊ฐ ๋์ ์ฅ๋ฅด๋ถํฐ ์จ๋ฒ์ ๋ด๋๋ค
(์๋ฌด๋ฆฌ ๋ฌธ์ ์ค๋ช
์ ์ฝ์ด๋ด๋ ๋๋ฌด ๋ชจํธํ๊ฒ ์จ์๋ ๊ฒ ๊ฐ์์)
์ฒ์์ 1๋ฒ์ผ๋ก ์๊ฐํ๊ณ ๋ฌธ์ ๋ฅผ ํ์๋๋ 1,2,3,4,15๋ฅผ ์ ์ธํ๊ณค ๋ชจ๋ ์คํจ๊ฐ ๋ด๋ค. ๋ฐํ์์๋ฌ๋ ์๋๊ณ ..
์ ์ถ๋ ฅ ์์์์ ๋ณด๋ฉด ๊ตณ์ด ์ฅ๋ฅด๋ณ ์กฐํ์ ํฉ์ ๋ณด์ฌ์ฃผ๋ ๊ฑธ ๋ณด๊ณ 2๋ฒ์ผ๋ก ์ ๊ทผํด๋ดค๋ค.
๊ทธ๋ฌ๋๋ ํ ์คํธ์ผ์ด์ค ๋ชจ๋ ํต๊ณผํจ......
๋ญ๊ฐ ๊ต์ฅํ ํ๋ฌดํ๋ค ํํ
์ฝ๋๋ ๋ค์๊ณผ ๊ฐ๋ค.
######### ์ ํ์ฑ 100% #########
def solution(genres, plays):
# initialize
total_cnt = {genre: 0 for genre in set(genres)}
sorted_dic = {genre: [] for genre in set(genres)}
idx = range(len(genres))
ziped = list(zip(plays,genres,idx))
# fill in dict
for cnt,key,idx in ziped :
total_cnt[key] += cnt
# sort total count dict by value
total_cnt = {k: v for k, v in sorted(total_cnt.items(), key=lambda item: -item[1])}
for cnt,key,idx in ziped :
sorted_dic[key].append((cnt,idx))
res = []
for key in total_cnt :
res.extend([x[1] for x in sorted(sorted_dic[key],key = lambda x:(-x[0],x[1]))[:2]])
return res
- total_cnt : ์ฅ๋ฅด๋ณ ์กฐํ์ ํฉ์ ๊ตฌํ๊ธฐ ์ํ dictionary. (key: ์ฅ๋ฅด, value: ์ฅ๋ฅด์ ์กฐํ์ ํฉ)
- sorted_dic : ์ฅ๋ฅด๋ณ ๊ฐ ๊ณก์ ์ ๋ณด(์กฐํ์,๊ณ ์ ๋ฒํธ)๋ฅผ ๊ฐ์ง๊ณ ์๋ dictionary. (key: ์ฅ๋ฅด, value: ์ฅ๋ฅด์ ํด๋นํ๋ ๊ณก๋ค์ (์กฐํ์,๊ณ ์ ๋ฒํธ) ๋ฆฌ์คํธ)
๋ด๊ฐ ์ ์ํ ์ฝ๋๊ฐ ๋์์ด ๋๊ธฐ๋ฅผ ๋ฐ๋ผ๋ฉด์..!! ๋ง์น๋ค ๐
'๋ฐฑ์ค & ํ๋ก๊ทธ๋๋จธ์ค > Hash' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] Hash level2 ์์ฅ (0) | 2022.03.25 |
---|