Skip to content

Commit a57928c

Browse files
committed
1. two sum
1 parent 34f0816 commit a57928c

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

β€Žtwo-sum/whewchews.tsβ€Ž

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
function twoSum(nums: number[], target: number): number[] {
2+
/*
3+
* 아이디어
4+
* μ²˜μŒλΆ€ν„° 배열을 μˆœνšŒν•˜λ©° [0,1] [0,2] [0,3] [0, ...], [1,2], [1,3], [1,...] ... [nums.length-2, nums.length-1] λ₯Ό λŒλ©΄μ„œ 두 인자의 합이 target이 λ˜λŠ” 지점을 μ°ΎλŠ”λ‹€.
5+
* μˆœμ„œλŒ€λ‘œ 돌면 μ΅œμ•…μ˜ 경우 κ°€μž₯ λ§ˆμ§€λ§‰ μžλ¦¬κΉŒμ§€ 갈 μˆ˜λ„ μžˆλ‹€.
6+
* μ ˆλŒ€ 값이 λ˜μ§€ λͺ»ν•˜λŠ”, μ΅œμ†Œ 쑰건을 μƒκ°ν•΄λ³΄μž.
7+
* 주의1:λ²”μœ„κ°€ -10^9 <= nums[i] <= 10^9둜 μŒμˆ˜κ°’λ„ 있음
8+
* 주의2: μ •λ ¬λœ μˆœμ„œκ°€ μ•„λ‹˜.
9+
* 값을 Map에 μ €μž₯해두고 {value: index}, Map에 μžμ‹ κ³Ό λ”ν–ˆμ„λ•Œ target이 λ‚˜μ˜€λŠ” valueκ°€ μžˆλŠ”μ§€ 확인
10+
*/
11+
12+
// SC: O(N)
13+
const dict = new Map();
14+
15+
// TC: O(N)
16+
for (let i = 0; i <= nums.length - 1; i++) {
17+
const curr = nums[i];
18+
const pairValue = target - curr;
19+
if (dict.has(pairValue)) {
20+
return [dict.get(pairValue), i];
21+
}
22+
23+
dict.set(curr, i);
24+
}
25+
}
26+
27+
// TC: O(N)
28+
// SC: O(N)

0 commit comments

Comments
Β (0)