From f51e1bdf2c15c9e5541619ecfdf8019e5f771110 Mon Sep 17 00:00:00 2001 From: Jaewon Lee Date: Thu, 24 Jul 2025 00:59:45 +0900 Subject: [PATCH 1/6] 217. Contains Duplicate --- contains-duplicate/mumunuu.java | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 contains-duplicate/mumunuu.java diff --git a/contains-duplicate/mumunuu.java b/contains-duplicate/mumunuu.java new file mode 100644 index 000000000..6e5dc1b1c --- /dev/null +++ b/contains-duplicate/mumunuu.java @@ -0,0 +1,28 @@ +import java.util.HashSet; +import java.util.Set; + + +class Solution { + + /** + * + * Set 판단으로 O(n) + * + * */ + public boolean containsDuplicate(int[] nums) { + + Set set = new HashSet<>(); + + for (int num : nums) { + + boolean isAdded = set.add(num); + + if (!isAdded) { + return true; + } + } + + return false; + + } +} \ No newline at end of file From 67d94fe0abd7ec16740b1794e2c9542b1cdb58ca Mon Sep 17 00:00:00 2001 From: J Lee Date: Thu, 24 Jul 2025 01:05:31 +0900 Subject: [PATCH 2/6] 217. Contains Duplicate --- contains-duplicate/mumunuu.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contains-duplicate/mumunuu.java b/contains-duplicate/mumunuu.java index 6e5dc1b1c..b18ecaeda 100644 --- a/contains-duplicate/mumunuu.java +++ b/contains-duplicate/mumunuu.java @@ -25,4 +25,4 @@ public boolean containsDuplicate(int[] nums) { return false; } -} \ No newline at end of file +} From b93cecdbae5cb2a8bc31d777a9cddace05f2f200 Mon Sep 17 00:00:00 2001 From: mumunuu Date: Sat, 26 Jul 2025 15:02:58 +0900 Subject: [PATCH 3/6] solve #1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit O(n^2) 로 통과되지만 O(n) --- two-sum/mumunuu.java | 47 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 two-sum/mumunuu.java diff --git a/two-sum/mumunuu.java b/two-sum/mumunuu.java new file mode 100644 index 000000000..c0f4d55f5 --- /dev/null +++ b/two-sum/mumunuu.java @@ -0,0 +1,47 @@ +import java.util.HashMap; +import java.util.Map; + +class Solution { + /** + * 배열의 요소 2개를 더해서 target 숫자들을 만들고 인덱스를 반환 + * 같은 숫자를 여러번 사용할 수 없고, 해답은 반드시 존재함 + * Follow-up: Can you come up with an algorithm that is less than O(n^2) time complexity? + */ + + /* + // naive 한 풀이법. O(n^2) + public int[] twoSum(int[] nums, int target) { + // naive 한 방법: 나를 제외한 나머지 숫자가 있는지 찾음 + for (int i=0; i>라고 생각했지만 그냥 Integer, Integer로 가능함 + public int[] twoSum(int[] nums, int target) { + + Map map = new HashMap<>(); + + for (int i = 0; i < nums.length; i++) { + + int needValue = target - nums[i]; + if (map.containsKey(needValue)) { + return new int[]{map.get(needValue), i}; + } + map.put(nums[i], i); // 항상 현재 인덱스를 나중에 저장 + + } + + return new int[]{}; // 절대 도달하지 않음 (문제 조건상 정답이 항상 존재) + + } + + +} \ No newline at end of file From 6709254dfa3d535cb99012653377896d4ad86500 Mon Sep 17 00:00:00 2001 From: mumunuu Date: Sat, 26 Jul 2025 15:04:09 +0900 Subject: [PATCH 4/6] posix --- two-sum/mumunuu.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/two-sum/mumunuu.java b/two-sum/mumunuu.java index c0f4d55f5..9b19b533a 100644 --- a/two-sum/mumunuu.java +++ b/two-sum/mumunuu.java @@ -43,5 +43,4 @@ public int[] twoSum(int[] nums, int target) { } - -} \ No newline at end of file +} From c29f414802a7af67ad69910fe3e16487e35fd9cf Mon Sep 17 00:00:00 2001 From: mumunuu Date: Sat, 26 Jul 2025 15:48:15 +0900 Subject: [PATCH 5/6] solve 347 --- top-k-frequent-elements/mumunuu.java | 41 ++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 top-k-frequent-elements/mumunuu.java diff --git a/top-k-frequent-elements/mumunuu.java b/top-k-frequent-elements/mumunuu.java new file mode 100644 index 000000000..9f5051ad4 --- /dev/null +++ b/top-k-frequent-elements/mumunuu.java @@ -0,0 +1,41 @@ +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +class Solution { + + + // priority queue 로 풀어보기 + public int[] topKFrequent(int[] nums, int k) { + + // 빈도수를 셈 + Map freqMap = new HashMap<>(); + for (int num : nums) { + freqMap.put(num, freqMap.getOrDefault(num, 0) + 1); + } + + // 갯수만큼 배열 생성 (빈도수를 인덱스로 가지는) + List[] bucket = new List[nums.length + 1]; // freq는 최대 nums.length + for (int i = 0; i < bucket.length; i++) { + bucket[i] = new ArrayList<>(); + } + + for (Map.Entry entry : freqMap.entrySet()) { + int num = entry.getKey(); + int freq = entry.getValue(); + bucket[freq].add(num); + } + + // 빈도수가 높은 뒤에서부터 넣어줌 + List result = new ArrayList<>(); + for (int i = bucket.length - 1; i >= 0 && result.size() < k; i--) { + if (!bucket[i].isEmpty()) { + result.addAll(bucket[i]); + } + } + + // k개만 반환 + return result.subList(0, k).stream().mapToInt(i -> i).toArray(); + } +} \ No newline at end of file From 6ca06afaf220656b1c406ee5b2eab5d0b19fba0c Mon Sep 17 00:00:00 2001 From: mumunuu Date: Sat, 26 Jul 2025 15:48:59 +0900 Subject: [PATCH 6/6] posix --- top-k-frequent-elements/mumunuu.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/top-k-frequent-elements/mumunuu.java b/top-k-frequent-elements/mumunuu.java index 9f5051ad4..5c45ee162 100644 --- a/top-k-frequent-elements/mumunuu.java +++ b/top-k-frequent-elements/mumunuu.java @@ -38,4 +38,4 @@ public int[] topKFrequent(int[] nums, int k) { // k개만 반환 return result.subList(0, k).stream().mapToInt(i -> i).toArray(); } -} \ No newline at end of file +}