Skip to content

Commit a70f1b6

Browse files
committed
top k frequent elements solution
1 parent 7bd21e1 commit a70f1b6

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/*
2+
์‹œ๊ฐ„ ๋ณต์žก๋„: O(nยฒ)
3+
๊ณต๊ฐ„ ๋ณต์žก๋„: O(n)
4+
*/
5+
function topKFrequent(nums: number[], k: number): number[] {
6+
const map = new Map<number, number>();
7+
let numLength: number[] = nums;
8+
let mapArray;
9+
10+
while (numLength.length > 0) {
11+
// ํ˜„์žฌ ๊ธฐ์ค€ ์ˆซ์ž
12+
const current = numLength[0];
13+
// ๊ฐฏ์ˆ˜ ํ™•์ธ
14+
const elementNum = numLength.filter((n) => n === current);
15+
// ํ™•์ธํ•œ ์ˆซ์ž ์ œ๊ฑฐ
16+
const filteredNum = numLength.filter((n) => n !== current);
17+
18+
numLength = filteredNum;
19+
map.set(current, elementNum.length);
20+
}
21+
mapArray = [...map];
22+
mapArray.sort((a, b) => b[1] - a[1]);
23+
24+
// ์ƒ์œ„ k๊ฐœ num๋งŒ ๋ฐ˜ํ™˜
25+
return mapArray.slice(0, k).map(([num, _]) => num);
26+
}

โ€Žtwo-sum/juhui-jeong.tsโ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*
22
์‹œ๊ฐ„ ๋ณต์žก๋„: O(n)
33
๊ณต๊ฐ„ ๋ณต์žก๋„: O(n)
4-
*.
4+
*/
55
function twoSum(nums: number[], target: number): number[] {
66
const map = new Map<number, number>();
77

0 commit comments

Comments
ย (0)