From 4702c0a868be53e0ee73b75d2f1c1e0e9cccdb44 Mon Sep 17 00:00:00 2001 From: 1lsang Date: Fri, 28 Nov 2025 18:35:36 +0900 Subject: [PATCH 1/3] solve valid-palindrome --- valid-palindrome/1lsang.ts | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 valid-palindrome/1lsang.ts diff --git a/valid-palindrome/1lsang.ts b/valid-palindrome/1lsang.ts new file mode 100644 index 0000000000..26d83ee75d --- /dev/null +++ b/valid-palindrome/1lsang.ts @@ -0,0 +1,26 @@ +function isPalindrome(s: string): boolean { + // console.log('A'.charCodeAt(0), 'Z'.charCodeAt(0)); // 65 90 + // console.log('a'.charCodeAt(0), 'z'.charCodeAt(0)); // 97 122 + // console.log('0'.charCodeAt(0), '9'.charCodeAt(0)); // 48 57 + + // 문자열 변환 과정 + let converted = '' + for (let c of s) { + const charCode = c.charCodeAt(0); + if (charCode >= 65 && charCode <= 90) { + converted += c.toLowerCase(); + } + else if ((charCode >= 97 && charCode <= 122) || (charCode >= 48 && charCode <= 57)) { + converted += c; + } + } + + // palindrome 판단 조건 + const length = converted.length; + + for (let i = 0; i < length/2; i ++) { + if (converted[i] !== converted[length - 1 - i]) return false; + } + + return true; +}; From 7773d4645e913505c29b4715fdebd163d5867f29 Mon Sep 17 00:00:00 2001 From: 1lsang Date: Fri, 28 Nov 2025 18:56:06 +0900 Subject: [PATCH 2/3] solve number-of-1-bits --- number-of-1-bits/1lsang.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 number-of-1-bits/1lsang.ts diff --git a/number-of-1-bits/1lsang.ts b/number-of-1-bits/1lsang.ts new file mode 100644 index 0000000000..241fa4279c --- /dev/null +++ b/number-of-1-bits/1lsang.ts @@ -0,0 +1,18 @@ +function hammingWeight(n: number): number { + // 최대 이진수 찾기 + let s = 1; + while (s*2 <= n) { + s*=2; + } + + // bit 세기 + let cnt = 0; + while (n > 0) { + if (n - s >= 0) { + n -= s; + cnt++; + } + s /= 2; + } + return cnt; +}; From 2ed50ad3c3e6664bdaaf77e16c21e50ae4f37a37 Mon Sep 17 00:00:00 2001 From: 1lsang Date: Sat, 29 Nov 2025 19:15:51 +0900 Subject: [PATCH 3/3] solve combination-sum --- combination-sum/1lsang.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 combination-sum/1lsang.ts diff --git a/combination-sum/1lsang.ts b/combination-sum/1lsang.ts new file mode 100644 index 0000000000..09f9727c05 --- /dev/null +++ b/combination-sum/1lsang.ts @@ -0,0 +1,16 @@ +function combinationSum(candidates: number[], target: number): number[][] { + // arr: index까지 갈 수 있는 combinationSum + const arr:number[][][] = Array.from({ length: target + 1 }, () => [] as number[][]); + // 0을 만들 수 있는 방법은 숫자가 없는 것 + arr[0].push([] as number[]); + + for (const candidate of candidates) { + for (let n = candidate; n <= target; n++) { + for (const combination of arr[n-candidate]) { + arr[n].push([...combination, candidate]); + } + } + } + console.log(arr); + return arr[target]; +};