From 493ad57f8c49dcc823f5d3a77e14b7104184d5a8 Mon Sep 17 00:00:00 2001 From: JAEKWANG97 Date: Wed, 1 Jul 2026 08:55:49 +0900 Subject: [PATCH 1/2] week 02 initial solutions --- climbing-stairs/jaekwang97.java | 15 +++++++++++++++ valid-anagram/jaekwang97.java | 21 +++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 climbing-stairs/jaekwang97.java create mode 100644 valid-anagram/jaekwang97.java diff --git a/climbing-stairs/jaekwang97.java b/climbing-stairs/jaekwang97.java new file mode 100644 index 0000000000..8780c82849 --- /dev/null +++ b/climbing-stairs/jaekwang97.java @@ -0,0 +1,15 @@ +class Solution { + public int climbStairs(int n) { + int[] dp = new int[n + 1]; + if (n <= 3) return n; + dp[1] = 1; + dp[2] = 2; + dp[3] = 3; + + for (int i = 4; i <= n; i++) { + dp[i] = dp[i - 1] + dp[i - 2]; + } + + return dp[n]; + } +} diff --git a/valid-anagram/jaekwang97.java b/valid-anagram/jaekwang97.java new file mode 100644 index 0000000000..9e4ca416f2 --- /dev/null +++ b/valid-anagram/jaekwang97.java @@ -0,0 +1,21 @@ +import java.util.*; + +class Solution { + public boolean isAnagram(String s, String t) { + int[] count = new int[26]; + + for (char c : s.toCharArray()) { + count[c - 'a']++; + } + + for (char c : t.toCharArray()) { + count[c - 'a']--; + } + + for (int n : count) { + if (n != 0) return false; + } + + return true; + } +} From a319c65a5e84bde6b46b962c5f71bd990498173a Mon Sep 17 00:00:00 2001 From: JAEKWANG97 Date: Wed, 1 Jul 2026 09:00:18 +0900 Subject: [PATCH 2/2] product of array except self solution --- product-of-array-except-self/jaekwang97.java | 26 ++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 product-of-array-except-self/jaekwang97.java diff --git a/product-of-array-except-self/jaekwang97.java b/product-of-array-except-self/jaekwang97.java new file mode 100644 index 0000000000..9ab00399ef --- /dev/null +++ b/product-of-array-except-self/jaekwang97.java @@ -0,0 +1,26 @@ +import java.util.*; + +class Solution { + public int[] productExceptSelf(int[] nums) { + int n = nums.length; + int[] right = new int[n + 1]; + int[] left = new int[n + 1]; + + right[0] = 1; + for (int i = 1; i <= n; i++) { + right[i] = right[i - 1] * nums[i - 1]; + } + + left[n] = 1; + for (int i = n - 1; i >= 0; i--) { + left[i] = left[i + 1] * nums[i]; + } + + int[] answer = new int[n]; + for (int i = 0; i < n; i++) { + answer[i] = right[i] * left[i + 1]; + } + + return answer; + } +}