def top_k(nums, k):
dict = {}
for i in set(nums):
dict[i] = nums.count(i)
dict = sorted(dict.items(), key=lambda x: x[1], reverse=True)
q = []
for i in dict[:k]:
q.append(i[0])
return q
- nums์๋ ์ซ์ ๋ฆฌ์คํธ๊ฐ ๋ค์ด์ค๊ณ k์๋ ์ซ์๊ฐ ๋ค์ด์จ๋ค.
- nums์๋ [1, 1, 1, 2, 2, 3] ์ด๋ผ๋ ๋ฆฌ์คํธ๊ฐ ๋ค์ด์ค๊ณ k์๋ 2๋ผ๋ ์ซ์๊ฐ ๋ค์ด์จ๋ค๊ณ ์น์.
- ๋น ๋์
๋๋ฆฌ dict๋ฅผ ๋ง๋ ๋ค.
- ์ซ์ ๋ฆฌ์คํธ nums๋ฅผ set์ผ๋ก ๋ง๋ค์ด ์ค๋ณต๋๋ ์ซ์๋ฅผ ์ ๊ฑฐํ๋ค.
- set์ผ๋ก ๋ฆฌ์คํธ nums์ ์ค๋ณต๋๋ ์ซ์๋ฅผ ์ ๊ฑฐํ๋ฉด ์์์ ์ซ์๋งํผ dict์์ ๋์
๋๋ฆฌ ํค์ ํค๊ฐ์ ์ถ๊ฐํ ์ ์๋ค.
- ํค๋ ์ค๋ณต๋์ง ์๋ ์ซ์, ํค ๊ฐ์ ๋ฆฌ์คํธ์์ ์ซ์์ ๊ฐ์๋ฅผ ์ผ ๊ฐ์ ๋ฃ๋๋ค
>>> dict
{1: 3, 2: 2, 3: 1}
- ์ด๋ ๊ฒ ์์ฑ๋ ๋์
๋๋ฆฌ dict์์ ๊ฐ์ฅ ํฐ ํค๊ฐ ๋ ๊ฐ๋ฅผ ์ถ๋ ฅํด์ผ ํ๊ธฐ ๋๋ฌธ์ dict์ sort๋ฅผ ์ด์ฉํด ์ ๋ ฌํด์ค๋ค.
- ๋์
๋๋ฆฌ๋ฅผ ์ ๋ฆฌํ ๋๋ sorted๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
sorted
- sorted ํจ์์ ๊ฒฝ์ฐ key ์์น์ธ์์ ํจ์๋ฅผ ๋ณด๋ด์, ํจ์์์ ์ง์ ํ ๊ฒฐ๊ณผ๊ฐ์ ๋ฐ๋ผ์ ์ ๋ ฌ์ ํ ์ ์๋ค.