Skip to content

Commit 6e5f6c5

Browse files
committed
Solve Week1
1 parent de3b81b commit 6e5f6c5

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
'''
2+
Bucket Sort ์ ‘๊ทผ:
3+
1. Counter๋กœ ๊ฐ ์ˆซ์ž์˜ ๋นˆ๋„๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.
4+
2. ๋นˆ๋„ ์ˆ˜๋ฅผ ์ธ๋ฑ์Šค๋กœ ํ•˜๋Š” ๋ฒ„ํ‚ท(buckets)์„ ์ƒ์„ฑํ•œ๋‹ค.
5+
- buckets[i]์—๋Š” ๋“ฑ์žฅ ํšŸ์ˆ˜๊ฐ€ i๋ฒˆ์ธ ์ˆซ์ž๋“ค์ด ๋“ค์–ด๊ฐ„๋‹ค.
6+
3. ๋ฒ„ํ‚ท์˜ ๊ฐ€์žฅ ๋†’์€ ๋นˆ๋„ ์ธ๋ฑ์Šค๋ถ€ํ„ฐ ์—ญ์ˆœ์œผ๋กœ ์ˆœํšŒํ•˜๋ฉฐ
7+
์ˆซ์ž๋ฅผ ํ•˜๋‚˜์”ฉ ๊ฒฐ๊ณผ ๋ฆฌ์ŠคํŠธ(result)์— ์ถ”๊ฐ€ํ•œ๋‹ค.
8+
4. ๊ฒฐ๊ณผ ๋ฆฌ์ŠคํŠธ์— k๊ฐœ๊ฐ€ ๋ชจ์ด๋ฉด ๋ฐ˜ํ™˜ํ•œ๋‹ค.
9+
10+
์‹œ๊ฐ„ ๋ณต์žก๋„: O(n)
11+
- ๋นˆ๋„ ๊ณ„์‚ฐ O(n)
12+
- ๋ฒ„ํ‚ท ์ฑ„์šฐ๊ธฐ O(n)
13+
- ๊ฒฐ๊ณผ ์ˆ˜์ง‘ O(n)
14+
15+
๊ณต๊ฐ„ ๋ณต์žก๋„: O(n)
16+
- Counter ๋”•์…”๋„ˆ๋ฆฌ์™€ ๋ฒ„ํ‚ท ๋ฆฌ์ŠคํŠธ ์‚ฌ์šฉ
17+
'''
18+
19+
20+
from typing import List
21+
from collections import Counter
22+
23+
24+
class Solution:
25+
def topKFrequent(self, nums: List[int], k: int) -> List[int]:
26+
freq = Counter(nums)
27+
28+
buckets = [[] for _ in range(len(nums) + 1)]
29+
for num, count in freq.items():
30+
buckets[count].append(num)
31+
32+
result = []
33+
for i in range(len(buckets) - 1, 0, -1):
34+
for num in buckets[i]:
35+
result.append(num)
36+
37+
if len(result) == k:
38+
return result
39+
40+
return result

0 commit comments

Comments
ย (0)