Skip to content

Commit c1d183c

Browse files
authored
Merge pull request #2010 from juhui-jeong/main
[juhui-jeong] WEEK 01 solutions #219
2 parents 9f8df8b + a70f1b6 commit c1d183c

File tree

3 files changed

+83
-0
lines changed

3 files changed

+83
-0
lines changed

contains-duplicate/juhui-jeong.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
/*
2+
시간 복잡도: O(n)
3+
공간 복잡도: O(n)
4+
*/
5+
function containsDuplicate(nums: number[]): boolean {
6+
const seen = new Set<number>();
7+
8+
for (const num of nums) {
9+
if (seen.has(num)) {
10+
return true;
11+
}
12+
seen.add(num);
13+
}
14+
15+
return false;
16+
}
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: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
/*
2+
시간 복잡도: O(n)
3+
공간 복잡도: O(n)
4+
*/
5+
function twoSum(nums: number[], target: number): number[] {
6+
const map = new Map<number, number>();
7+
8+
for (let i = 0; i < nums.length; i++) {
9+
const num = nums[i];
10+
const diff = target - num;
11+
12+
if (map.has(diff)) {
13+
return [map.get(diff)!, i];
14+
}
15+
16+
map.set(num, i);
17+
}
18+
19+
return [];
20+
}
21+
22+
/*
23+
이전 풀이
24+
시간 복잡도: O(n²)
25+
공간 복잡도: O(1)
26+
function twoSum(nums: number[], target: number): number[] {
27+
for (let i = 0; i < nums.length; i++) {
28+
for (let j = 0; j < nums.length; j++) {
29+
// 동일한 index일 때는 안됨.
30+
if (i === j) {
31+
continue;
32+
}
33+
if (nums[i] + nums[j] === target) {
34+
return [i, j];
35+
}
36+
}
37+
return [];
38+
}
39+
}
40+
41+
*/

0 commit comments

Comments
 (0)