Skip to content

Commit 2f71576

Browse files
committed
two sum solution
1 parent f291ae8 commit 2f71576

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

โ€Žtwo-sum/clara-shin.jsโ€Ž

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
/**
2+
* ๋ฌธ์ œ ํŒŒ์•…:
3+
* ์ •์ˆ˜ ๋ฐฐ์—ด nums์™€ ๋ชฉํ‘œ๊ฐ’ target์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋‘ ์ˆซ์ž๋ฅผ ๋”ํ•ด์„œ target์ด ๋˜๋Š” ๋‘ ์ˆ˜์˜ ์ธ๋ฑ์Šค๋ฅผ ์ฐพ๋Š” ๋ฌธ์ œ
4+
* follow-up: ๋ธŒ๋ฃจํŠธ ํฌ์Šค(์ด์ค‘ ๋ฐ˜๋ณต๋ฌธ -> O(n^2)) ์ ‘๊ทผ๋ฒ•๋ณด๋‹ค ํšจ์œจ์ ์ธ ํ•ด์‹œ๋งต์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐ
5+
* => ๋ฐฐ์—ด์„ ํ•œ ๋ฒˆ๋งŒ ์ˆœํšŒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„ ํ˜• ์‹œ๊ฐ„ ๋ณต์žก๋„ O(n)
6+
*
7+
* ์ ‘๊ทผ ๋ฐฉ์‹:
8+
* (1) ์ˆซ์ž์™€ ํ•ด๋‹น ์ธ๋ฑ์Šค๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด Map ๊ฐ์ฒด ์‚ฌ์šฉ
9+
* (2) ๋ฐฐ์—ด์„ ํ•œ ๋ฒˆ๋งŒ ์ˆœํšŒํ•˜๋ฉด์„œ ๊ฐ ์š”์†Œ๋ฅผ ํ™•์ธํ•˜๋Š”๋ฐ,
10+
* (3) ๊ฐ ์ˆซ์ž์— ๋Œ€ํ•ด, target - ํ˜„์žฌ ์ˆซ์ž๊ฐ€ ์ด๋ฏธ ํ•ด์‹œ๋งต์— ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์„œ
11+
* ์žˆ๋‹ค๋ฉด: ์ฐพ์€ ์ˆซ์ž์™€ ํ˜„์žฌ ์ˆซ์ž์˜ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ 
12+
* ์—†๋‹ค๋ฉด: ํ˜„์žฌ ์ˆซ์ž์™€ ๊ทธ ์ธ๋ฑ์Šค๋ฅผ ํ•ด์‹œ๋งต์— ์ €์žฅํ•˜๊ณ  ๊ณ„์† ์ง„ํ–‰
13+
*/
14+
15+
/**
16+
* @param {number[]} nums - ์ •์ˆ˜ ๋ฐฐ์—ด
17+
* @param {number} target - ๋ชฉํ‘œ ํ•ฉ๊ณ„ ๊ฐ’
18+
* @return {number[]} - ํ•ฉ์ด ๋ชฉํ‘œ๊ฐ’์ด ๋˜๋Š” ๋‘ ์ˆ˜์˜ ์ธ๋ฑ์Šค
19+
*/
20+
var twoSum = function (nums, target) {
21+
const numMap = new Map();
22+
23+
for (let i = 0; i < nums.length; i++) {
24+
const currentNum = nums[i];
25+
26+
const complement = target - currentNum;
27+
28+
if (numMap.has(complement)) {
29+
return [numMap.get(complement), i];
30+
}
31+
32+
numMap.set(currentNum, i);
33+
}
34+
35+
return [];
36+
};

0 commit comments

Comments
ย (0)