Skip to content

Commit ae344e8

Browse files
committed
달래영상 시청 후 수정 two sum#2
1 parent 6e87952 commit ae344e8

File tree

1 file changed

+16
-9
lines changed

1 file changed

+16
-9
lines changed

two-sum/seungseung88.js

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,21 @@
1+
// 배열을 한 번 도니 시간 복잡도 O(n)
2+
// 최악의 경우 nums의 크기 배열만큼 증가하므로 공간 복잡도는 O(n)
3+
14
const twoSum = (nums, target) => {
2-
// 배열을 한 번 순회
5+
// {값: 인덱스} 형태로 저장
6+
const indicies = {};
7+
38
for (let i = 0; i < nums.length; i += 1) {
4-
// target숫자에서 현재 숫자를 뺀 숫자가 존재하는지 확인한다.
5-
const targetIndex = nums.indexOf(target - nums[i]);
6-
// targetIndex가 존재하고(-1이 아님), 현재 숫자와 같은 인덱스 숫자가 아니라면 반환한다.
7-
if (targetIndex !== -1 && i !== targetIndex) {
8-
return [i, targetIndex];
9+
// 타겟값에서 현재 가리키는 숫자를 뺀 값을 저장
10+
const complement = target - nums[i];
11+
12+
// complement가 indicies안에 존재하면 해당 값을 반환
13+
if (complement in indicies) {
14+
const j = indicies[complement];
15+
return [j, i];
916
}
17+
// 존재 하지 않으면 값과 인덱스 형태로 저장 ex> { 11: 0, 15: 1, 2: 2 }
18+
indicies[nums[i]] = i;
19+
console.log(indicies);
1020
}
1121
};
12-
13-
// 시간 복잡도는 O(n^2)
14-
// 공간 복잡도는 O(1)

0 commit comments

Comments
 (0)