From e2840cc1fb01a57dabebdbede28379f58a3c9949 Mon Sep 17 00:00:00 2001 From: JIA Date: Sat, 22 Nov 2025 12:11:39 +0900 Subject: [PATCH] =?UTF-8?q?-=202=EC=A3=BC=EC=B0=A8=20=EB=AC=B8=EC=A0=9C=20?= =?UTF-8?q?=ED=92=80=EC=9D=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- climbing-stairs/Geegong.java | 25 ++++++++ product-of-array-except-self/Geegong.java | 75 +++++++++++++++-------- valid-anagram/Geegong.java | 29 +++++++++ 3 files changed, 103 insertions(+), 26 deletions(-) create mode 100644 climbing-stairs/Geegong.java create mode 100644 valid-anagram/Geegong.java diff --git a/climbing-stairs/Geegong.java b/climbing-stairs/Geegong.java new file mode 100644 index 0000000000..e5fa937e4d --- /dev/null +++ b/climbing-stairs/Geegong.java @@ -0,0 +1,25 @@ +public class Geegong { + + /** + * time complexity : O(N) + * space complexity : O(N) + * @param n + * @return + */ + public int climbStairs(int n) { + // 계단 n step 까지의 방법의 수는 f(n-1) + f(n-2) + // f(n-1) 은 한칸 전 , f(n-2)는 2칸 전 + int[] dp = new int[46]; + dp[1] = 1; + dp[2] = 2; + + + for(int index=3; index= 0; index--) { - if (index == nums.length - 1) { - accumulatedProduct = nums[index]; - continue; - } + suffixProductArr[nums.length - 1] = 1; + suffixProductArr[nums.length - 2] = nums[nums.length - 1]; + for (int index=nums.length - 3; index>=0; index--) { + suffixProductArr[index] = nums[index + 1] * suffixProductArr[index + 1]; + } - result[index] = result[index] * accumulatedProduct; - accumulatedProduct = accumulatedProduct * nums[index]; + int[] result = new int[nums.length]; + for (int index=0; index= 0; index--) { +// if (index == nums.length - 1) { +// accumulatedProduct = nums[index]; +// continue; +// } +// +// result[index] = result[index] * accumulatedProduct; +// accumulatedProduct = accumulatedProduct * nums[index]; +// } +// +// return result; } } diff --git a/valid-anagram/Geegong.java b/valid-anagram/Geegong.java new file mode 100644 index 0000000000..04a9a5e394 --- /dev/null +++ b/valid-anagram/Geegong.java @@ -0,0 +1,29 @@ +import java.util.HashMap; +import java.util.Map; + +public class Geegong { + + public boolean isAnagram(String s, String t) { + char[] sArray = s.toCharArray() + char[] tArray = t.toCharArray(); + + // early return + if (sArray.length != tArray.length) { + return false; + } + + Map numOfLetters = new HashMap<>(); + for (Character sLetter : sArray) { + numOfLetters.merge(sLetter, 1, Integer::sum); + } + + for (Character tLetter : tArray) { + Integer num = numOfLetters.get(tLetter); + if (num <= 0) return false; + numOfLetters.computeIfPresent(tLetter, (key, oldValue) -> oldValue - 1); + } + + return true; + } + +}