From ad62cd86233d873a3738b9cfa4b041e4b4fdf8ba Mon Sep 17 00:00:00 2001 From: juhui Date: Thu, 20 Nov 2025 21:26:43 +0900 Subject: [PATCH 1/2] valid anagram solution --- valid-anagram/juhui-jeong.ts | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 valid-anagram/juhui-jeong.ts diff --git a/valid-anagram/juhui-jeong.ts b/valid-anagram/juhui-jeong.ts new file mode 100644 index 0000000000..0ae06f882b --- /dev/null +++ b/valid-anagram/juhui-jeong.ts @@ -0,0 +1,27 @@ +// 시간 복잡도(Time Complexity): O(n) +// 공간 복잡도(Space Complexity): O(1) +function isAnagram(s: string, t: string): boolean { + if (s.length !== t.length) return false; + + const count = new Array(26).fill(0); + + for (let i = 0; i < s.length; i++) { + count[s.charCodeAt(i) - 97]++; + count[t.charCodeAt(i) - 97]--; + } + + return count.every((n) => n === 0); +} + +/* +// 첫 번째 풀이 +// 시간 복잡도(Time Complexity): O(n log n) +// 공간 복잡도(Space Complexity): O(n) + +function isAnagram(s: string, t: string): boolean { + let baseString = s.split('').sort().toString(); + let targetString = t.split('').sort().toString(); + + return baseString === targetString ? true : false; +} +*/ From aa8ba191d024ab8e5a0d888e17c71d43f154013b Mon Sep 17 00:00:00 2001 From: juhui Date: Sat, 22 Nov 2025 14:19:11 +0900 Subject: [PATCH 2/2] solutions commit --- climbing-stairs/juhui-jeong.ts | 19 ++++++++++ product-of-array-except-self/juhui-jeong.ts | 40 +++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 climbing-stairs/juhui-jeong.ts create mode 100644 product-of-array-except-self/juhui-jeong.ts diff --git a/climbing-stairs/juhui-jeong.ts b/climbing-stairs/juhui-jeong.ts new file mode 100644 index 0000000000..8a4f050e27 --- /dev/null +++ b/climbing-stairs/juhui-jeong.ts @@ -0,0 +1,19 @@ +/* + +시간 복잡도: O(n) +공간 복잡도: O(1) + +해당 문제를 구할 때 바로 생각나지 않아 leet code의 코멘트들을 보며 힌트를 구했습니다. +*/ +function climbStairs(n: number): number { + if (n <= 2) return n; + + let a = 1; + let b = 2; + for (let i = 3; i <= n; i++) { + let c = a + b; + a = b; + b = c; + } + return b; +} diff --git a/product-of-array-except-self/juhui-jeong.ts b/product-of-array-except-self/juhui-jeong.ts new file mode 100644 index 0000000000..e20ffb43f6 --- /dev/null +++ b/product-of-array-except-self/juhui-jeong.ts @@ -0,0 +1,40 @@ +/* +시간 복잡도: O(n) +공간 복잡도: O(1) +*/ +function productExceptSelf(nums: number[]): number[] { + const n = nums.length; + const answer = new Array(n); + + // 왼쪽 곱 채우기 + let leftProduct = 1; + for (let i = 0; i < n; i++) { + answer[i] = leftProduct; + leftProduct *= nums[i]; + } + + // 오른쪽 곱 채우기 + let rightProduct = 1; + for (let i = n - 1; i >= 0; i--) { + answer[i] *= rightProduct; + rightProduct *= nums[i]; + } + return answer; +} + +/* +// Time Limit Exceeded +function productExceptSelf(nums: number[]): number[] { + let answer = []; + for (let i = 0; i < nums.length; i++) { + const mulOfNums = nums.reduce((accumulator, currentValue, currentIndex) => { + if (currentIndex !== i) { + return accumulator * currentValue; + } + return accumulator; + }, 1); + answer.push(mulOfNums); + } + return answer; +} +*/