From e59a813dbff06b95ae29777d41161098f56d3a2d Mon Sep 17 00:00:00 2001 From: Ujoonnee Date: Mon, 31 Mar 2025 18:14:09 +0900 Subject: [PATCH 1/9] add solution of contains-duplicate --- contains-duplicate/Ujoonnee.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 contains-duplicate/Ujoonnee.java diff --git a/contains-duplicate/Ujoonnee.java b/contains-duplicate/Ujoonnee.java new file mode 100644 index 000000000..832b09e67 --- /dev/null +++ b/contains-duplicate/Ujoonnee.java @@ -0,0 +1,16 @@ +import java.util.HashSet; +import java.util.Set; + +class Solution { + public boolean containsDuplicate(int[] nums) { + Set numberSet = new HashSet<>(); + for(int number : nums) { + if(numberSet.contains(number)) { + return true; + } + + numberSet.add(number); + } + return false; + } +} \ No newline at end of file From 4e942db3148e8a5168d584451f95ec9ee15a7fd3 Mon Sep 17 00:00:00 2001 From: Ujoonnee Date: Mon, 31 Mar 2025 18:15:41 +0900 Subject: [PATCH 2/9] add shortened solution of contains-duplicate --- contains-duplicate/Ujoonnee.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/contains-duplicate/Ujoonnee.java b/contains-duplicate/Ujoonnee.java index 832b09e67..7652c89e9 100644 --- a/contains-duplicate/Ujoonnee.java +++ b/contains-duplicate/Ujoonnee.java @@ -13,4 +13,12 @@ public boolean containsDuplicate(int[] nums) { } return false; } -} \ No newline at end of file +} + +/* +class Solution { + public boolean containsDuplicate(int[] nums) { + return Arrays.stream(nums).distinct().count() != nums.length; + } +} +*/ From df49823aac117c62e7a93e07ac00b50cec6f7cae Mon Sep 17 00:00:00 2001 From: Ujoonnee Date: Mon, 31 Mar 2025 19:10:20 +0900 Subject: [PATCH 3/9] add solution of two-sum --- two-sum/Ujoonnee.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 two-sum/Ujoonnee.java diff --git a/two-sum/Ujoonnee.java b/two-sum/Ujoonnee.java new file mode 100644 index 000000000..14e32bba3 --- /dev/null +++ b/two-sum/Ujoonnee.java @@ -0,0 +1,13 @@ +class Solution { + public int[] twoSum(int[] nums, int target) { + for (int i=0; i Date: Mon, 31 Mar 2025 20:04:08 +0900 Subject: [PATCH 4/9] add solution of two-sum (using map) --- two-sum/Ujoonnee.java | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/two-sum/Ujoonnee.java b/two-sum/Ujoonnee.java index 14e32bba3..8ae234fee 100644 --- a/two-sum/Ujoonnee.java +++ b/two-sum/Ujoonnee.java @@ -1,3 +1,29 @@ +/* +브루트 포스틑 이중 반복문을 사용하므로 시간 복잡도가 O(n^2) +-> map에 (값, 인덱스)로 저장 후 배열을 반복하며 합이 target인 값을 찾는다. +*/ +import java.util.HashMap; +import java.util.Map; + +class Solution { + public int[] twoSum(int[] nums, int target) { + Map numberMap = new HashMap<>(); + for (int i=0; i Date: Tue, 1 Apr 2025 09:05:46 +0900 Subject: [PATCH 5/9] add solution of top-k-frequent-elements --- top-k-frequent-elements/Ujoonnee.java | 32 +++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 top-k-frequent-elements/Ujoonnee.java diff --git a/top-k-frequent-elements/Ujoonnee.java b/top-k-frequent-elements/Ujoonnee.java new file mode 100644 index 000000000..2dee25160 --- /dev/null +++ b/top-k-frequent-elements/Ujoonnee.java @@ -0,0 +1,32 @@ +import java.util.Arrays; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; + +class Solution { + public int[] topKFrequent(int[] nums, int k) { + // 배열의 숫자가 몇 번씩 등장하는지 저장 + Map frequencyMap = new HashMap<>(); + for(int num : nums) { + frequencyMap.put(num, frequencyMap.getOrDefault(num, 0) + 1); + } + + // Map 형식의 데이터를 [숫자, 빈도] 의 배열로 변환 + Map.Entry[] arr = new Map.Entry[frequencyMap.size()]; + Iterator> iterator = frequencyMap.entrySet().iterator(); + for (int i=0; i e2.getValue() - e1.getValue()); + + // k개만 꺼내기 + int[] answer = new int[k]; + for (int i=0; i Date: Tue, 1 Apr 2025 10:29:07 +0900 Subject: [PATCH 6/9] add solution of longest-consecutive-sequence --- longest-consecutive-sequence/Ujoonnee.java | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 longest-consecutive-sequence/Ujoonnee.java diff --git a/longest-consecutive-sequence/Ujoonnee.java b/longest-consecutive-sequence/Ujoonnee.java new file mode 100644 index 000000000..2edb8a696 --- /dev/null +++ b/longest-consecutive-sequence/Ujoonnee.java @@ -0,0 +1,33 @@ +import java.util.*; + +class Solution { + public int longestConsecutive(int[] nums) { + // 중복 제거 후 오름차순 정렬 + Set distinct = new HashSet<>(); + for (int num : nums) { + distinct.add(num); + } + List list = new ArrayList<>(distinct); + Collections.sort(list); + + // 연속된 숫자라면 스택에 저장 + Stack stack = new Stack<>(); + int answer = 0; + for (int num : list) { + if (stack.isEmpty()) { + stack.add(num); + continue; + } + + // 연속된 숫자가 아니라면 현재까지 연속된 수를 저장 후 스택 초기화 + if (stack.peek() + 1 != num) { + answer = Math.max(answer, stack.size()); + stack.clear(); + } + + stack.add(num); + } + + return Math.max(answer, stack.size()); + } +} From 3b2f75ad192bb3bfba4eb4993851d1abad22d3d4 Mon Sep 17 00:00:00 2001 From: Ujoonnee Date: Tue, 1 Apr 2025 10:35:16 +0900 Subject: [PATCH 7/9] add solution of longest-consecutive-sequence (reduced runtime) --- longest-consecutive-sequence/Ujoonnee.java | 38 ++++++++++------------ 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/longest-consecutive-sequence/Ujoonnee.java b/longest-consecutive-sequence/Ujoonnee.java index 2edb8a696..bd2e7368f 100644 --- a/longest-consecutive-sequence/Ujoonnee.java +++ b/longest-consecutive-sequence/Ujoonnee.java @@ -1,33 +1,31 @@ -import java.util.*; +import java.util.Arrays; class Solution { public int longestConsecutive(int[] nums) { - // 중복 제거 후 오름차순 정렬 - Set distinct = new HashSet<>(); - for (int num : nums) { - distinct.add(num); + if (nums.length == 0) { + return 0; } - List list = new ArrayList<>(distinct); - Collections.sort(list); - // 연속된 숫자라면 스택에 저장 - Stack stack = new Stack<>(); - int answer = 0; - for (int num : list) { - if (stack.isEmpty()) { - stack.add(num); + Arrays.sort(nums); + + int answer = 1; + int current = 1; + for (int i=1; i Date: Fri, 4 Apr 2025 00:21:04 +0900 Subject: [PATCH 8/9] add solution for house-robber --- house-robber/Ujoonnee.java | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 house-robber/Ujoonnee.java diff --git a/house-robber/Ujoonnee.java b/house-robber/Ujoonnee.java new file mode 100644 index 000000000..93f94a313 --- /dev/null +++ b/house-robber/Ujoonnee.java @@ -0,0 +1,2 @@ +package leetcode_study;public class Ujoonnee { +} From d30791d8e7fe0eb46bbc4bf0cbb1731694a52ead Mon Sep 17 00:00:00 2001 From: Ujoonnee <69345466+Ujoonnee@users.noreply.github.com> Date: Fri, 4 Apr 2025 00:25:07 +0900 Subject: [PATCH 9/9] Update house-robber/Ujoonnee.java update because of an unknown IDE error --- house-robber/Ujoonnee.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/house-robber/Ujoonnee.java b/house-robber/Ujoonnee.java index 93f94a313..76bc08748 100644 --- a/house-robber/Ujoonnee.java +++ b/house-robber/Ujoonnee.java @@ -1,2 +1,13 @@ -package leetcode_study;public class Ujoonnee { +class Solution { + public int rob(int[] nums) { + int[] dp = new int[nums.length+1]; + dp[0] = 0; + dp[1] = nums[0]; + + for (int i=1; i