From f8aa2fc55b132701fc93a820d9403a590d96d670 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9E=A5=EC=9E=AC=EC=A0=95=20=5B=EC=BA=90=ED=85=8C?= =?UTF-8?q?=EC=84=9C=EB=B9=84=EC=8A=A4=5D?= Date: Thu, 12 Sep 2024 23:24:38 +0900 Subject: [PATCH 1/4] best test to by and sell stock solution --- .../jaejeong1.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 best-time-to-buy-and-sell-stock/jaejeong1.java diff --git a/best-time-to-buy-and-sell-stock/jaejeong1.java b/best-time-to-buy-and-sell-stock/jaejeong1.java new file mode 100644 index 00000000..b35312d4 --- /dev/null +++ b/best-time-to-buy-and-sell-stock/jaejeong1.java @@ -0,0 +1,27 @@ +class SolutionJaeJeong { + + public int maxProfit(int[] prices) { + // 주어진 가격 배열이 주어지고 prices[i]는 i번째 날의 주어진 주식 가격 + // 한 주식을 매수할 단일 날짜를 선택하고, 매도할 미래의 다른 날짜를 선택해 수익을 극대화 + // 이 거래에서 얻을 수 있는 최대 수익을 반환해라, 수익을 얻을 수 없으면 0을 반환해라 + // 싸게 매수해서 비싸게 매도해라 + + // 3번째 풀이 + // 최대 이익: 현재 가격 - 이전 가격 중 최저 가격 + // 시간복잡도: O(N), 공간복잡도: O(1) + int minPrice = prices[0]; + int maxProfit = 0; + for (int i = 1; i < prices.length; i++) { + if (prices[i - 1] < minPrice) { + minPrice = prices[i - 1]; + } + + var profit = prices[i] - minPrice; + if (profit > maxProfit) { + maxProfit = profit; + } + } + + return maxProfit; + } +} \ No newline at end of file From 84c632fec5464e2929ea58af3de666e87e1c7041 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9E=A5=EC=9E=AC=EC=A0=95=20=5B=EC=BA=90=ED=85=8C?= =?UTF-8?q?=EC=84=9C=EB=B9=84=EC=8A=A4=5D?= Date: Fri, 13 Sep 2024 00:01:08 +0900 Subject: [PATCH 2/4] group anagram solution --- group-anagrams/jaejeong1.java | 52 +++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 group-anagrams/jaejeong1.java diff --git a/group-anagrams/jaejeong1.java b/group-anagrams/jaejeong1.java new file mode 100644 index 00000000..610d5429 --- /dev/null +++ b/group-anagrams/jaejeong1.java @@ -0,0 +1,52 @@ +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +class SolutionGroupAnagram { + public List> groupAnagrams(String[] strs) { + // char, integer map으로 strs의 원소들을 분류한다 + // 분류 후 알파벳 순으로 정렬해 알파벳 + 개수 조합의 str으로 만든다 + // str 과 인덱스를 맵에 넣는다 + // 맵 keyset을 돌면서 value에 해당하는 strs 인덱스로 접근해 정답으로 반환 + // 시간복잡도: O(N), 공간복잡도: O(N) + Map> map = new HashMap<>(); + + for (int i=0; i()); + value.add(i); + map.put(anagramData, value); + } + + List> answer = new ArrayList<>(); + + for (String key : map.keySet()) { + List value = new ArrayList<>(); + for (int index : map.get(key)) { + value.add(strs[index]); + } + + answer.add(value); + } + + return answer; + } + + private String createAnagramData(String str) { + Map map = new HashMap<>(); + + for (int i=0; i Date: Sun, 15 Sep 2024 16:46:35 +0900 Subject: [PATCH 3/4] link break --- best-time-to-buy-and-sell-stock/jaejeong1.java | 2 +- group-anagrams/jaejeong1.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/best-time-to-buy-and-sell-stock/jaejeong1.java b/best-time-to-buy-and-sell-stock/jaejeong1.java index b35312d4..3c21afd7 100644 --- a/best-time-to-buy-and-sell-stock/jaejeong1.java +++ b/best-time-to-buy-and-sell-stock/jaejeong1.java @@ -24,4 +24,4 @@ public int maxProfit(int[] prices) { return maxProfit; } -} \ No newline at end of file +} diff --git a/group-anagrams/jaejeong1.java b/group-anagrams/jaejeong1.java index 610d5429..b829c958 100644 --- a/group-anagrams/jaejeong1.java +++ b/group-anagrams/jaejeong1.java @@ -49,4 +49,4 @@ private String createAnagramData(String str) { return anagramData.toString(); } -} \ No newline at end of file +} From 32085b53f6fc0a4c6d186878bc3650b1ad2808ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9E=A5=EC=9E=AC=EC=A0=95=20=5B=EC=BA=90=ED=85=8C?= =?UTF-8?q?=EC=84=9C=EB=B9=84=EC=8A=A4=5D?= Date: Mon, 16 Sep 2024 21:02:22 +0900 Subject: [PATCH 4/4] link break --- group-anagrams/jaejeong1.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/group-anagrams/jaejeong1.java b/group-anagrams/jaejeong1.java index b829c958..a3cf9b37 100644 --- a/group-anagrams/jaejeong1.java +++ b/group-anagrams/jaejeong1.java @@ -9,7 +9,7 @@ public List> groupAnagrams(String[] strs) { // 분류 후 알파벳 순으로 정렬해 알파벳 + 개수 조합의 str으로 만든다 // str 과 인덱스를 맵에 넣는다 // 맵 keyset을 돌면서 value에 해당하는 strs 인덱스로 접근해 정답으로 반환 - // 시간복잡도: O(N), 공간복잡도: O(N) + // 시간복잡도: O(N^2), 공간복잡도: O(N) Map> map = new HashMap<>(); for (int i=0; i