Skip to content

Commit 495e40d

Browse files
committed
add comment
1 parent 9d386cf commit 495e40d

File tree

5 files changed

+17
-6
lines changed

5 files changed

+17
-6
lines changed

contains-duplicate/khg0712.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
// NOTE: set을 사용해서 중복된 엘리먼트가 있는 경우 true 리턴
12
function containsDuplicate(nums: number[]): boolean {
23
const set = new Set();
34
for(const num of nums) {

house-robber/khg0712.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
function rob(nums: number[]): number {
2+
// 시간 초과를 막기 위해 Memo 객체 추가
23
const memo: Record<number, number> = {};
34

45
function dfs (start: number): number {
6+
// memo에 저장된 값 있으면 사용
57
if(memo[start] != null) {
68
return memo[start];
79
}
810

11+
// 배열 벗어난 인덱스 접근이면 0리턴
912
if(start >= nums.length) {
1013
return 0;
1114
}
1215

16+
// 현재 요소의 값과 하나 건너뛴 요소의 기대값 / 다음 요소의 기대값 중 더 큰 값을 사용
1317
memo[start] = Math.max(nums[start] + dfs(start + 2), dfs(start + 1));
1418
return memo[start];
1519
}

longest-consecutive-sequence/khg0712.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ function longestConsecutive(nums: number[]): number {
33
let maxCount = 0;
44

55
for (const num of set) {
6+
// 시작 시점이 되는 숫자부터 시작.
67
const isStart = !set.has(num - 1);
78
if(!isStart) continue;
89

@@ -12,12 +13,13 @@ function longestConsecutive(nums: number[]): number {
1213
count += 1;
1314
const hasNext = set.has(_num + 1);
1415

16+
// 다음 요소가 없을 때 까지 순회하다가 최대 카운트를 override
1517
if(!hasNext) {
16-
if(count > maxCount) maxCount = count;
17-
18+
maxCount = Math.max(maxCount, count);
1819
break;
1920
}
2021

22+
// 한 번 사용한 숫자는 제거
2123
set.delete(_num);
2224
_num+=1;
2325
}

top-k-frequent-elements/khg0712.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
function topKFrequent(nums: number[], k: number): number[] {
2+
// nums 순회하면서 각 숫자 개수 카운트
23
const dict = nums.reduce((acc: Record<number, number>, v) => {
34
if(acc[v] != null) {
45
acc[v] += 1;
@@ -9,6 +10,7 @@ function topKFrequent(nums: number[], k: number): number[] {
910
}, {});
1011

1112

13+
// 내림차순으로 정렬하고, k개 만큼 자르고 배열로 반환
1214
const result = Object.entries(dict).sort((a, b) => b[1] - a[1]).slice(0, k);
1315
return result.map(([key]) => parseInt(key));
1416
};

two-sum/khg0712.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,19 @@
11
function twoSum(nums: number[], target: number): number[] {
2+
// hasTable을 생성
23
const hashTable = nums.reduce((acc, v, i) => {
34
acc[v] = i;
45
return acc;
56
}, {});
67

78

89

9-
for (const index1 of nums.keys()) {
10-
const v = nums[index1];
10+
for (const index of nums.keys()) {
11+
const v = nums[index];
1112
const remain = target - v;
1213

13-
if(hashTable.hasOwnProperty(remain) && index1 !== hashTable[remain]) {
14-
return [index1, hashTable[remain]];
14+
// target을 만들기 위해 필요한 값을 hashTable에서 조회하고 있으면 결과로 리턴
15+
if(hashTable.hasOwnProperty(remain) && index !== hashTable[remain]) {
16+
return [index, hashTable[remain]];
1517
}
1618
}
1719

0 commit comments

Comments
 (0)