From 27ef42859e0aa26125a3c4a2462f54864a152c65 Mon Sep 17 00:00:00 2001 From: herrinekim Date: Sat, 11 Jan 2025 16:47:29 +0900 Subject: [PATCH 1/4] add: group-anagrams --- group-anagrams/HerrineKim.js | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 group-anagrams/HerrineKim.js diff --git a/group-anagrams/HerrineKim.js b/group-anagrams/HerrineKim.js new file mode 100644 index 000000000..8bd43fcf6 --- /dev/null +++ b/group-anagrams/HerrineKim.js @@ -0,0 +1,24 @@ +// 시간복잡도: O(n * m log m) +// 공간복잡도: O(n) + +// HashMap 사용 +// 각 문자열을 정렬하여 키로 사용 +// 정렬된 문자열을 키로 사용하여 그룹화 + +/** + * @param {string[]} strs + * @return {string[][]} + */ +var groupAnagrams = function (strs) { + const map = {}; + + for (const str of strs) { + const key = str.split('').sort().join(''); + if (!map[key]) { + map[key] = []; + } + map[key].push(str); + } + + return Object.values(map); +}; From 1dbfd1322c920134ea0ae8de6fe40300d34c23e0 Mon Sep 17 00:00:00 2001 From: herrinekim Date: Sat, 11 Jan 2025 16:47:42 +0900 Subject: [PATCH 2/4] fix: lint --- group-anagrams/HerrineKim.js | 1 + 1 file changed, 1 insertion(+) diff --git a/group-anagrams/HerrineKim.js b/group-anagrams/HerrineKim.js index 8bd43fcf6..10c04d37b 100644 --- a/group-anagrams/HerrineKim.js +++ b/group-anagrams/HerrineKim.js @@ -22,3 +22,4 @@ var groupAnagrams = function (strs) { return Object.values(map); }; + From a9844d6d0098230ced1a0ebe2dd064d9400f9869 Mon Sep 17 00:00:00 2001 From: herrinekim Date: Sat, 11 Jan 2025 17:04:05 +0900 Subject: [PATCH 3/4] add: stock --- best-time-to-buy-and-sell-stock/HerrineKim.js | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 best-time-to-buy-and-sell-stock/HerrineKim.js diff --git a/best-time-to-buy-and-sell-stock/HerrineKim.js b/best-time-to-buy-and-sell-stock/HerrineKim.js new file mode 100644 index 000000000..8ba255b46 --- /dev/null +++ b/best-time-to-buy-and-sell-stock/HerrineKim.js @@ -0,0 +1,23 @@ +// 시간복잡도: O(n) +// 공간복잡도: O(1) + +// 최소값을 계속 갱신하면서 최대 이익을 계산 + +/** + * @param {number[]} prices + * @return {number} + */ +var maxProfit = function (prices) { + let minPrice = Infinity; + let maxProfit = 0; + + for (let price of prices) { + if (price < minPrice) { + minPrice = price; + } else { + maxProfit = Math.max(maxProfit, price - minPrice); + } + } + + return maxProfit; +}; From f5836b8c9716a46834b7e71452cbdf48fe760b44 Mon Sep 17 00:00:00 2001 From: herrinekim Date: Sat, 11 Jan 2025 17:04:18 +0900 Subject: [PATCH 4/4] fix: lint --- best-time-to-buy-and-sell-stock/HerrineKim.js | 1 + 1 file changed, 1 insertion(+) diff --git a/best-time-to-buy-and-sell-stock/HerrineKim.js b/best-time-to-buy-and-sell-stock/HerrineKim.js index 8ba255b46..71f648d89 100644 --- a/best-time-to-buy-and-sell-stock/HerrineKim.js +++ b/best-time-to-buy-and-sell-stock/HerrineKim.js @@ -21,3 +21,4 @@ var maxProfit = function (prices) { return maxProfit; }; +