From a4b29c76048f21b4c1b7d4271959fdf64f799e6e Mon Sep 17 00:00:00 2001 From: junyoungKim Date: Thu, 20 Nov 2025 00:09:57 +0900 Subject: [PATCH 1/5] valid-anagram solution --- valid-anagram/kimjunyoung90.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 valid-anagram/kimjunyoung90.java diff --git a/valid-anagram/kimjunyoung90.java b/valid-anagram/kimjunyoung90.java new file mode 100644 index 0000000000..d03a74e998 --- /dev/null +++ b/valid-anagram/kimjunyoung90.java @@ -0,0 +1,18 @@ +public class kimjunyoung90 { + public boolean isAnagram(String s, String t) { + if(s.length() != t.length()) return false; + + int[] count = new int[26]; + + for (int i = 0; i < s.length(); i++) { + count[s.charAt(i) - 'a']++; + count[t.charAt(i) - 'a']--; + } + + for(int c : count) { + if (c != 0) return false; + } + + return true; + } +} From 647de975d46ba07b965c7a3fc9b83a1aa21cb733 Mon Sep 17 00:00:00 2001 From: junyoungKim Date: Fri, 21 Nov 2025 23:47:04 +0900 Subject: [PATCH 2/5] climbing-stairs solution --- climbing-stairs/kimjunyoung90.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 climbing-stairs/kimjunyoung90.java diff --git a/climbing-stairs/kimjunyoung90.java b/climbing-stairs/kimjunyoung90.java new file mode 100644 index 0000000000..82e0f5a8e8 --- /dev/null +++ b/climbing-stairs/kimjunyoung90.java @@ -0,0 +1,16 @@ +public class kimjunyoung90 { + public int climbStairs(int n) { + if(n == 1) return 1; + if(n == 2) return 2; + + int a = 1; + int b = 2; + + for(int i = 3; i <= n; i++) { + int c = a + b; + a = b; + b = c; + } + return b; + } +} From 7aa7393b85970906994d4864c1b3bacb4bd6548b Mon Sep 17 00:00:00 2001 From: junyoungKim Date: Sat, 22 Nov 2025 14:50:19 +0900 Subject: [PATCH 3/5] product-of-array-except-self solution --- .../kimjunyoung90.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 product-of-array-except-self/kimjunyoung90.java diff --git a/product-of-array-except-self/kimjunyoung90.java b/product-of-array-except-self/kimjunyoung90.java new file mode 100644 index 0000000000..6083ee1fef --- /dev/null +++ b/product-of-array-except-self/kimjunyoung90.java @@ -0,0 +1,20 @@ +public class kimjunyoung90 { + public int[] productExceptSelf(int[] nums) { + int[] answers = new int[nums.length]; + + //왼쪽 값 계산 + answers[0] = 1; + for (int i = 1; i < nums.length; i++) { + answers[i] = answers[i - 1] * nums[i - 1]; + } + + //오른쪽 값 계산 + int right = 1; + for (int i = nums.length - 1; i >= 0; i--) { + answers[i] *= right; + //다음 값 right 계산 + right *= nums[i]; + } + return answers; + } +} From 46ec3881ffcaf210fb6d23181eb01717ae37aaa1 Mon Sep 17 00:00:00 2001 From: junyoungKim Date: Sat, 22 Nov 2025 16:19:47 +0900 Subject: [PATCH 4/5] 3sum solution --- 3sum/kimjunyoung90.java | 44 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 3sum/kimjunyoung90.java diff --git a/3sum/kimjunyoung90.java b/3sum/kimjunyoung90.java new file mode 100644 index 0000000000..1d31ddf636 --- /dev/null +++ b/3sum/kimjunyoung90.java @@ -0,0 +1,44 @@ +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class kimjunyoung90 { + public List> threeSum(int[] nums) { + List> answers = new ArrayList<>(); + //숫자들을 미리 정렬해서 3번째 단계에서 추가적인 정렬을 없게 만들자.. + Arrays.sort(nums); + + // 1. 요소가 중복되지 않는 3개의 숫자 조합을 찾음 + for (int i = 0; i < nums.length - 2; i++) { + + //i 값이 전 요소랑 같은 경우 탐색 건너 띄기 + if (i > 0 && nums[i] == nums[i - 1]) continue; + + //two pointer 적용 + int left = i + 1; + int right = nums.length - 1; + + while (left < right) { + int sum = nums[i] + nums[left] + nums[right]; + if (sum == 0) { + answers.add(Arrays.asList(nums[i], nums[left], nums[right])); + + //left 중복 체크 + while (left < right && nums[left] == nums[left + 1]) left++; + + //right 중복 체크 + while (left < right && nums[right] == nums[right - 1]) right--; + + left++; + right--; + } else if (sum < 0) { + left++; + } else { + right--; + } + } + } + + return answers; + } +} From 2e7b0050ad9b20e9872e149d7bcf19ee3bdf7ac5 Mon Sep 17 00:00:00 2001 From: junyoungKim Date: Sat, 22 Nov 2025 16:45:51 +0900 Subject: [PATCH 5/5] Validate Binary Search Tree solution --- validate-binary-search-tree/kimjunyoung90.java | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 validate-binary-search-tree/kimjunyoung90.java diff --git a/validate-binary-search-tree/kimjunyoung90.java b/validate-binary-search-tree/kimjunyoung90.java new file mode 100644 index 0000000000..c07b03dccc --- /dev/null +++ b/validate-binary-search-tree/kimjunyoung90.java @@ -0,0 +1,11 @@ +public class kimjunyoung90 { + public boolean isValidBST(TreeNode root) { + return validate(root, Long.MIN_VALUE, Long.MAX_VALUE); + } + + public boolean validate(TreeNode node, long min, long max) { + if(node == null) return true; + if(node.val <= min || node.val >= max) return false; + return validate(node.left, min, node.val) && validate(node.right, node.val, max); + } +}