From e428ebe0bd33d553f0c8cb8f61fd7715bb9580ff Mon Sep 17 00:00:00 2001 From: herrinekim Date: Tue, 14 Jan 2025 23:38:22 +0900 Subject: [PATCH 1/2] add: valid-parentheses --- valid-parentheses/HerrineKim.js | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 valid-parentheses/HerrineKim.js diff --git a/valid-parentheses/HerrineKim.js b/valid-parentheses/HerrineKim.js new file mode 100644 index 000000000..28a56c499 --- /dev/null +++ b/valid-parentheses/HerrineKim.js @@ -0,0 +1,33 @@ +// 시간복잡도: O(n) +// 공간복잡도: O(n) + +// 스택을 사용하여 괄호의 유효성을 검사 +// 괄호가 열리면 스택에 추가하고 닫히면 스택에서 마지막 요소를 꺼내서 짝이 맞는지 확인 +// 스택이 비어있으면 유효한 괄호 문자열 + +/** + * @param {string} s + * @return {boolean} + */ +var isValid = function (s) { + const bracketStack = []; + const bracketPairs = { + ')': '(', + '}': '{', + ']': '[' + }; + + for (const char of s) { + if (char in bracketPairs) { + const lastChar = bracketStack.pop(); + + if (lastChar !== bracketPairs[char]) { + return false; + } + } else { + bracketStack.push(char); + } + } + + return bracketStack.length === 0; +}; From c2bf12a25ea9c2fc7165416a45713d8090f2fd1c Mon Sep 17 00:00:00 2001 From: herrinekim Date: Thu, 16 Jan 2025 21:14:57 +0900 Subject: [PATCH 2/2] add: container-with-most-water --- container-with-most-water/HerrineKim.js | 26 +++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 container-with-most-water/HerrineKim.js diff --git a/container-with-most-water/HerrineKim.js b/container-with-most-water/HerrineKim.js new file mode 100644 index 000000000..d8e22eb57 --- /dev/null +++ b/container-with-most-water/HerrineKim.js @@ -0,0 +1,26 @@ +// 시간복잡도: O(n) +// 공간복잡도: O(1) + +/** + * @param {number[]} height + * @return {number} + */ +var maxArea = function (height) { + let maxWater = 0; + let left = 0; + let right = height.length - 1; + + while (left < right) { + const lowerHeight = Math.min(height[left], height[right]); + const width = right - left; + maxWater = Math.max(maxWater, lowerHeight * width); + + if (height[left] < height[right]) { + left++; + } else { + right--; + } + } + + return maxWater; +};