[doh6077] WEEK 01 solutions#2370
Conversation
ykim7
left a comment
There was a problem hiding this comment.
set์ ์ด์ฉํ์ฌ ์ค๋ณต๋ ๊ฐ์ฒด๊ฐ ์์ด์ ๊ธธ์ด๊ฐ ์ค์ด๋ ๊ฒฝ์ฐ, ๊ทธ๊ฒ์ ๋น๊ตํ์ฌ ์ค๋ณต์ฌ๋ถ๋ฅผ ํ์ธํ ๊ฒ์ด ์ข์์ต๋๋ค. ์ฝ๋๊ฐ ์งง๊ณ ์ฝ๊ธฐ ์ฝ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ง๊ธ๋ ์ถฉ๋ถํ์ง๋ง, ์ค๊ฐ์ ์ค๋ณต์ ๋ฐ๊ฒฌํ๋ฉด ์กฐ๊ธฐ ์ข
๋ฃํ๋ ๋ฐฉ์๋ ๊ณ ๋ คํ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
ykim7
left a comment
There was a problem hiding this comment.
ํด์๋งต์ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ๋นํด ์๊ฐ ๋ณต์ก๋๋ฅผ O(n)์ผ๋ก ์ค์ฌ์ ํจ์จ์ ์ผ๋ก ํ์ดํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
| # use Hash map to save num and index | ||
| nums_hm = {} | ||
|
|
||
| for i, num in enumerate(nums): |
There was a problem hiding this comment.
enumerate๋ฅผ ์ฌ์ฉํด์ index์ num์ ๋์์ ๊ฐ์ ธ์จ ์ ์ด ์ข์์ต๋๋ค.
ykim7
left a comment
There was a problem hiding this comment.
๋จ๊ณ๋ณ๋ก ์ฝ๊ธฐ ์ฝ๊ณ ์ดํด๊ฐ ์ ๋๋ ์ฝ๋์์ต๋๋ค.
๋ค๋ง freq๋ฅผ ์์ฑํ๋ ๊ณผ์ ์ O(n)์ด์ง๋ง, ์ดํ sorted()๋ฅผ ์ฌ์ฉํ๋ฉด์ ์ ๋ ฌ์ O(m log m)์ด ์ถ๊ฐ๋ก ๋ฐ์ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋น๋๋ฅผ ์ธ๋ฑ์ค๋ก ์ฌ์ฉํ๋ bucket ๊ตฌ์กฐ๋ฅผ ํ์ฉํ๋ฉด O(n)์ ๊ฐ๊น๊ฒ ํ ์๋ ์์ ๊ฒ ๊ฐ์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋น๋: ์ซ์ ๋ฆฌ์คํธ ํํ๋ก ์ ์ฅํ ๋ค, ๋์ ๋น๋๋ถํฐ ํ์ํ๋ ๋ฐฉ์๋ ํ๋์ ๋์์ด ๋ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
| freq[num] += 1 | ||
|
|
||
| # 2. Sort by frequency in descending order | ||
| sorted_items = sorted(freq.items(), key=lambda item: item[1], reverse=True) |
There was a problem hiding this comment.
sorted๋ฅผ ์ฌ์ฉํ ๋ reverse ์ต์ ์ธ์ key ์ต์ ์ ๋ฃ์ด ๊ฐ์ ๋น๊ตํ ์ ์๋ค๋ ์ ์ ์์์ต๋๋ค.
ykim7
left a comment
There was a problem hiding this comment.
์ ๋ฐ์ ์ผ๋ก ํ๋ฆ์ด ์ ๋ณด์ด๊ณ ์ดํดํ๊ธฐ ์ฌ์ด ํ์ด์์ต๋๋ค. ๋ค๋ง ์ด ๋ฌธ์ ์์๋ ์๊ฐ ๋ณต์ก๋๋ฅผ ์๊ธฐํ๊ณ ์์ด ๊ทธ ๊ด์ ์์ ๋ค์ ์ดํด๋ณด์์ต๋๋ค. ํ์ฌ ์ฝ๋๋ sort()๋ฅผ ์ฌ์ฉํ๋ฉด์ O(n log n)์ ์๊ฐ ๋ณต์ก๋๊ฐ ๋ฐ์ํ๊ณ , ์ดํ while loop๋ O(n)์ด๋ฏ๋ก ์ ์ฒด์ ์ผ๋ก O(n log n)์ด ๋๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ ๋ ฌ ๋์ ์ด์ ๋ฌธ์ ์์ ์ฌ์ฉํ์
จ๋ set์ ํ์ฉํ๋ ๋ฐฉ๋ฒ๋ ์๊ฐํด ๋ณผ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค. set์ ์ค๋ณต์ ์ ๊ฑฐํ๊ณ , ์๋์ง ์๋์ง๋ฅผ ํ์ธํ๋ ํ์์ด O(1)์ด๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ์ด์ฉํ๋ฉด ์ ์ฒด ์๊ฐ ๋ณต์ก๋๋ฅผ O(n)์ ๊ฐ๊น๊ฒ ์ค์ผ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
๋ต์ ์ ์ถ ๋ฌธ์
์์ฑ์ ์ฒดํฌ ๋ฆฌ์คํธ
In Review๋ก ์ค์ ํด์ฃผ์ธ์.๊ฒํ ์ ์ฒดํฌ ๋ฆฌ์คํธ
Important
๋ณธ์ธ ๋ต์ ์ ์ถ ๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ๋ถ PR ํ๋ ์ด์์ ๋ฐ๋์ ๊ฒํ ๋ฅผ ํด์ฃผ์ ์ผ ํฉ๋๋ค!