From 6acd81cc36c014f84e16df1b351c3d64ac2e7e0d Mon Sep 17 00:00:00 2001 From: JangAyeon Date: Tue, 25 Nov 2025 07:11:35 +0900 Subject: [PATCH 1/5] solve combination-sum [dfs] --- combination-sum/JangAyeon.js | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 combination-sum/JangAyeon.js diff --git a/combination-sum/JangAyeon.js b/combination-sum/JangAyeon.js new file mode 100644 index 0000000000..ba12a19eeb --- /dev/null +++ b/combination-sum/JangAyeon.js @@ -0,0 +1,23 @@ +/** + * @param {number[]} candidates + * @param {number} target + * @return {number[][]} + */ +var combinationSum = function (arr, target) { + const N = arr.length; + const answer = []; + function dfs(total, idx, route) { + if (total >= target) { + if (total == target) { + answer.push(route); + } + return; + } + for (let i = idx; i < N; i++) { + dfs(total + arr[i], i, [...route, arr[i]]); + } + } + + dfs(0, 0, []); + return answer; +}; From bac506f5285d6d0351230e3c1b789813c5fcd5e8 Mon Sep 17 00:00:00 2001 From: JangAyeon Date: Tue, 25 Nov 2025 07:13:39 +0900 Subject: [PATCH 2/5] solve number of 1 bit [rest operation + sum reduce] --- number-of-1-bits/JangAyeon.js | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 number-of-1-bits/JangAyeon.js diff --git a/number-of-1-bits/JangAyeon.js b/number-of-1-bits/JangAyeon.js new file mode 100644 index 0000000000..1ace955950 --- /dev/null +++ b/number-of-1-bits/JangAyeon.js @@ -0,0 +1,21 @@ +/** + * @param {number} n + * @return {number} + */ +var hammingWeight = function (n) { + function calDivision(num) { + return { v: Math.floor(num / 2), rest: num % 2 }; + } + let num = n; + let result = 0; + while (true) { + const { v, rest } = calDivision(num); + result += rest; + if (v == 0) { + break; + } + num = v; + } + + return result; +}; From 9dc2b08f515f64a4b5c8ab67f7e7c77e54bb8d5c Mon Sep 17 00:00:00 2001 From: JangAyeon Date: Tue, 25 Nov 2025 07:15:12 +0900 Subject: [PATCH 3/5] solve valid palindrom [sliding window + chatCodeAt] --- valid-palindrome/JangAyeon.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 valid-palindrome/JangAyeon.js diff --git a/valid-palindrome/JangAyeon.js b/valid-palindrome/JangAyeon.js new file mode 100644 index 0000000000..4760f29e63 --- /dev/null +++ b/valid-palindrome/JangAyeon.js @@ -0,0 +1,20 @@ +/** + * @param {string} s + * @return {boolean} + */ +var isPalindrome = function (s) { + const sLowered = [...s.toLowerCase().replace(" ", "")]; + const isAlpha = (item) => item.charCodeAt() >= 97 && item.charCodeAt() <= 122; + const isNumber = (item) => item.charCodeAt() >= 48 && item.charCodeAt() <= 57; + const str = sLowered.filter((c) => isAlpha(c) || isNumber(c)); + const N = str.length; + let [start, end] = [0, N - 1]; + while (start <= end) { + if (str[start] != str[end]) { + return false; + } + start++; + end--; + } + return true; +}; From 76d6b82a9f153fd5d281d770077e28ed7d8c630b Mon Sep 17 00:00:00 2001 From: JangAyeon Date: Tue, 25 Nov 2025 22:51:30 +0900 Subject: [PATCH 4/5] solve maxium sub array solve [dp] --- maximum-subarray/JangAyeon.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 maximum-subarray/JangAyeon.js diff --git a/maximum-subarray/JangAyeon.js b/maximum-subarray/JangAyeon.js new file mode 100644 index 0000000000..de25e24b90 --- /dev/null +++ b/maximum-subarray/JangAyeon.js @@ -0,0 +1,19 @@ +/** + * @param {number[]} nums + * @return {number} + */ +var maxSubArray = function (nums) { + let pointer = nums[0]; + let answer = pointer; + const N = nums.length; + for (let idx = 1; idx < N; idx++) { + if (nums[idx] > pointer + nums[idx]) { + pointer = nums[idx]; + } else { + pointer += nums[idx]; + } + // console.log(idx, pointer) + answer = Math.max(pointer, answer); + } + return answer; +}; From 5e78fe8a746ac319384c0fb6bf132c94c77adcbc Mon Sep 17 00:00:00 2001 From: JangAyeon Date: Fri, 28 Nov 2025 07:55:51 +0900 Subject: [PATCH 5/5] solve decode way [dp] --- decode-ways/JangAyeon.js | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 decode-ways/JangAyeon.js diff --git a/decode-ways/JangAyeon.js b/decode-ways/JangAyeon.js new file mode 100644 index 0000000000..0bad90be6b --- /dev/null +++ b/decode-ways/JangAyeon.js @@ -0,0 +1,23 @@ +var numDecodings = function (s) { + const N = s.length; + const memo = {}; + + function dfs(i) { + if (i === N) return 1; + if (s[i] === "0") return 0; // 0은 단독으로 decode 불가능 + if (memo[i] !== undefined) return memo[i]; + + // 1자리 + let count = dfs(i + 1); + + // 2자리 + if (i + 1 < N && Number(s.slice(i, i + 2)) <= 26) { + count += dfs(i + 2); + } + + memo[i] = count; + return count; + } + + return dfs(0); +};