Skip to content

Commit 6a58339

Browse files
committed
two sum solution
1 parent 0fc7ec8 commit 6a58339

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

โ€Žtwo-sum/yuhyeon99.jsโ€Ž

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
/**
2+
* ์ •์ˆ˜ ๋ฐฐ์—ด ๋‘ ์ˆซ์ž๋ฅผ ํ•ฉ์ณ์„œ target์˜ ๊ฐ’์ด ๋‚˜์˜ค๊ฒŒ ํ•ด์•ผํ•จ
3+
* ํ•ด๋‹นํ•˜๋Š” ์ธ๋ฑ์Šค๋ฅผ ๊ธธ์ด๊ฐ€ 2์ธ ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜ํ•˜์‹œ์˜ค.
4+
* ๊ฐ ์ •์ˆ˜๋Š” ํ•œ ๋ฒˆ์”ฉ๋งŒ ์“ธ ์ˆ˜ ์žˆ์Œ.
5+
*
6+
* @param {number[]} nums
7+
* @param {number} target
8+
* @return {number[]}
9+
*/
10+
var twoSum = function(nums, target) {
11+
const numsMap = new Map();
12+
13+
nums.forEach((num, i) => {
14+
if(!numsMap.has(num)) numsMap.set(num, []);
15+
numsMap.get(num).push(i);
16+
});
17+
18+
for(let i = 0; i < nums.length; i ++) {
19+
for(let j = i + 1; j < nums.length; j ++) {
20+
if(nums[i] + nums[j] === target) {
21+
if(hasMultipleEntries(numsMap.get(nums[i]))) {
22+
return [...numsMap.get(nums[i]).slice(0,2)];
23+
} else {
24+
return [...numsMap.get(nums[i]), ...numsMap.get(nums[j])];
25+
}
26+
}
27+
}
28+
}
29+
30+
return;
31+
};
32+
33+
function hasMultipleEntries(arr) {
34+
return arr.length >= 2;
35+
}

0 commit comments

Comments
ย (0)