From a1487757651eb9ee9a4698fd5772069a1d2d47a5 Mon Sep 17 00:00:00 2001 From: hyerin Date: Fri, 27 Dec 2024 22:29:44 +0900 Subject: [PATCH 1/4] add: two-sum --- two-sum/HerrineKim.js | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 two-sum/HerrineKim.js diff --git a/two-sum/HerrineKim.js b/two-sum/HerrineKim.js new file mode 100644 index 000000000..595c2898b --- /dev/null +++ b/two-sum/HerrineKim.js @@ -0,0 +1,22 @@ +// 시간 복잡도 : O(n) +// 공간 복잡도 : O(n) + +/** + * @param {number[]} nums + * @param {number} target + * @return {number[]} + */ +var twoSum = function(nums, target) { + let numMap = new Map(); + + for (let i = 0; i < nums.length; i++) { + let complement = target - nums[i]; + + if (numMap.has(complement)) { + return [numMap.get(complement), i]; + } + + numMap.set(nums[i], i); + } +}; + From 54506dfe3c3190b33213eeb24acf43b7166b773c Mon Sep 17 00:00:00 2001 From: hyerin Date: Fri, 27 Dec 2024 23:02:38 +0900 Subject: [PATCH 2/4] add: maximum-subarray --- maximum-subarray/HerrineKim.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 maximum-subarray/HerrineKim.js diff --git a/maximum-subarray/HerrineKim.js b/maximum-subarray/HerrineKim.js new file mode 100644 index 000000000..87ed8199c --- /dev/null +++ b/maximum-subarray/HerrineKim.js @@ -0,0 +1,18 @@ +// 시간 복잡도 : O(n) +// 공간 복잡도 : O(1) + +/** + * @param {number[]} nums + * @return {number} + */ +var maxSubArray = function(nums) { + let currentSum = nums[0]; + let maxSum = nums[0]; + + for (let i = 1; i < nums.length; i++) { + currentSum = Math.max(nums[i], currentSum + nums[i]); + maxSum = Math.max(maxSum, currentSum); + } + + return maxSum; +}; From 43b2831c9c0c9ccd58f62496d1e62f5f7d17d27e Mon Sep 17 00:00:00 2001 From: hyerin Date: Sat, 28 Dec 2024 01:23:02 +0900 Subject: [PATCH 3/4] add: combination-sum --- combination-sum/HerrineKim.js | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 combination-sum/HerrineKim.js diff --git a/combination-sum/HerrineKim.js b/combination-sum/HerrineKim.js new file mode 100644 index 000000000..fa574a10e --- /dev/null +++ b/combination-sum/HerrineKim.js @@ -0,0 +1,30 @@ +// 시간 복잡도 : O(n^2) +// 공간 복잡도 : O(n) + +/** + * @param {number[]} candidates + * @param {number} target + * @return {number[][]} + */ + +var combinationSum = function(candidates, target) { + const result = []; + + const backtrack = (remaining, combo, start) => { + if (remaining === 0) { + result.push([...combo]); + return; + } + + for (let i = start; i < candidates.length; i++) { + if (candidates[i] <= remaining) { + combo.push(candidates[i]); + backtrack(remaining - candidates[i], combo, i); + combo.pop(); + } + } + }; + + backtrack(target, [], 0); + return result; +}; \ No newline at end of file From 3060e1e93c8c8cb9d345f7031e7badc5908d650e Mon Sep 17 00:00:00 2001 From: hyerin Date: Sat, 28 Dec 2024 01:23:50 +0900 Subject: [PATCH 4/4] fix: lint --- combination-sum/HerrineKim.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/combination-sum/HerrineKim.js b/combination-sum/HerrineKim.js index fa574a10e..4549f6f24 100644 --- a/combination-sum/HerrineKim.js +++ b/combination-sum/HerrineKim.js @@ -27,4 +27,4 @@ var combinationSum = function(candidates, target) { backtrack(target, [], 0); return result; -}; \ No newline at end of file +};