Skip to content

Commit 40b1c97

Browse files
committed
add: solve #219 Two Sum with ts
1 parent 4e9b853 commit 40b1c97

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

โ€Žtwo-sum/Yjason-K.ts

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/**
2+
* ์ฃผ์–ด์ง„ ๋ฐฐ์—ด์—์„œ ๋‘ ์ˆซ์ž์˜ ํ•ฉ์ด target์ด ๋˜๋Š” idx ์Œ์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜
3+
* - ์‹œ๊ฐ„ ๋ณต์žก๋„: O(n)
4+
* - ํ•œ๋ฒˆ์˜ ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉฐ Map์— ๊ฐ’์„ ์ €์žฅํ•˜๊ณ , Map์—์„œ ๊ฐ’์„ ์ฐพ์Œ
5+
* - ๊ณต๊ฐ„ ๋ณต์žก๋„: O(n)
6+
* - ์ˆซ์ž์™€ ๊ทธ๋•Œ์˜ idx๋ฅผ ์Œ์œผ๋กœํ•˜๋Š” Map
7+
*
8+
* @param {number[]} nums - ์ˆซ์ž ๋ฐฐ์—ด
9+
* @param {number} target - ํƒ€๊ฒŸ ํ•ฉ
10+
* @returns {number[]} - ํ•ฉ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” idx ๋ฐฐ์—ด
11+
*/
12+
function twoSum(nums: number[], target: number): number[] {
13+
const map = new Map<number, number>();
14+
for (let i = 0; i < nums.length; i++) {
15+
const cur = nums[i]; // ํ˜„์žฌ ๊ฐ’
16+
const reamin = target - cur; // ๋‚˜๋จธ์ง€
17+
if (map.has(reamin)) {
18+
// Non-null assertion operator(!)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ undefined๊ฐ€ ์•„๋‹˜์„ ๋‹จ์–ธ
19+
return [map.get(reamin)!, i];
20+
}
21+
// ๋‚˜๋จธ์ง€๋ฅผ ์ฐพ์ง€ ๋ชปํ•œ ๊ฒฝ์šฐ ํ˜„์žฌ ๊ฐ’์„ ์ €์žฅ
22+
map.set(cur, i);
23+
}
24+
return []; // ๋ชฉํ‘œ ํ•ฉ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ˆซ์ž๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ ๋นˆ ๋ฐฐ์—ด ๋ฐ˜ํ™˜
25+
}

0 commit comments

Comments
ย (0)