From 0861d066542d9d8aaae7b808487d1d0bc1b1a9ed Mon Sep 17 00:00:00 2001 From: Chan Date: Tue, 20 May 2025 21:18:13 +0900 Subject: [PATCH 1/4] reverse-bits solution --- reverse-bits/lhc0506.js | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 reverse-bits/lhc0506.js diff --git a/reverse-bits/lhc0506.js b/reverse-bits/lhc0506.js new file mode 100644 index 000000000..ca9e5c793 --- /dev/null +++ b/reverse-bits/lhc0506.js @@ -0,0 +1,10 @@ +/** + * @param {number} n - a positive integer + * @return {number} - a positive integer + */ +var reverseBits = function(n) { + return parseInt(n.toString(2).padStart(32, '0').split('').reverse().join(''), 2); +}; + +// 시간복잡도: O(n) +// 공간복잡도: O(1) From a32ed9d77fab61608c4581131019279b78f70470 Mon Sep 17 00:00:00 2001 From: Chan Date: Wed, 21 May 2025 10:41:06 +0900 Subject: [PATCH 2/4] longest-repeating-character-replacement solution --- .../lhc0506.js | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 longest-repeating-character-replacement/lhc0506.js diff --git a/longest-repeating-character-replacement/lhc0506.js b/longest-repeating-character-replacement/lhc0506.js new file mode 100644 index 000000000..5d1e899a1 --- /dev/null +++ b/longest-repeating-character-replacement/lhc0506.js @@ -0,0 +1,32 @@ +/** + * @param {string} s + * @param {number} k + * @return {number} + */ +var characterReplacement = function(s, k) { + let start = 0; + let maxFreq = 0; + let result = 0; + const map = new Map(); + + for (let end = 0; end < s.length; end++) { + const endChar = s[end]; + map.set(endChar, 1 + (map.get(endChar) || 0)); + + maxFreq = Math.max(maxFreq, map.get(endChar)); + + if (end - start + 1 - maxFreq > k) { + const startChar = s[start]; + map.set(startChar, map.get(startChar) - 1); + start++; + + } + + result = Math.max(result, end - start + 1); + } + + return result; +}; + +// 시간복잡도: O(n) +// 공간복잡도: O(1) From 66b6fe199cdd85d3db88117b87b27d895e5f0acf Mon Sep 17 00:00:00 2001 From: Chan Date: Thu, 22 May 2025 11:11:21 +0900 Subject: [PATCH 3/4] clone-graph solution --- clone-graph/lhc0506.js | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 clone-graph/lhc0506.js diff --git a/clone-graph/lhc0506.js b/clone-graph/lhc0506.js new file mode 100644 index 000000000..2470e81a5 --- /dev/null +++ b/clone-graph/lhc0506.js @@ -0,0 +1,38 @@ +/** + * // Definition for a _Node. + * function _Node(val, neighbors) { + * this.val = val === undefined ? 0 : val; + * this.neighbors = neighbors === undefined ? [] : neighbors; + * }; + */ + +/** + * @param {_Node} node + * @return {_Node} + */ +var cloneGraph = function(node) { + if (!node) return null; + + const stack = [node]; + const map = new Map(); + + map.set(node.val, new _Node(node.val)); + + while (stack.length > 0) { + const currentNode = stack.pop(); + + for (const neighbor of currentNode.neighbors) { + if (!map.has(neighbor.val)) { + map.set(neighbor.val, new Node(neighbor.val)); + stack.push(neighbor); + } + map.get(currentNode.val).neighbors.push(map.get(neighbor.val)); + } + + } + return map.get(node.val); +}; + + +// 시간복잡도: O(n) +// 공간복잡도: O(n) From 0ae4a820798256c2290d7ff0624cd10c98448867 Mon Sep 17 00:00:00 2001 From: Chan Date: Fri, 23 May 2025 11:28:05 +0900 Subject: [PATCH 4/4] palindromic-substrings solution --- palindromic-substrings/lhc0506.js | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 palindromic-substrings/lhc0506.js diff --git a/palindromic-substrings/lhc0506.js b/palindromic-substrings/lhc0506.js new file mode 100644 index 000000000..c6fc56441 --- /dev/null +++ b/palindromic-substrings/lhc0506.js @@ -0,0 +1,30 @@ +/** + * @param {string} s + * @return {number} + */ + +var countSubstrings = function(s) { + let count = 0; + for (let i = 0; i < s.length; i++) { + let start = i; + let end = i; + while (start >= 0 && end < s.length && s[start] === s[end]) { + count += 1; + start -= 1; + end += 1; + } + + start = i; + end = i + 1; + while (start >= 0 && end < s.length && s[start] === s[end]) { + count += 1; + start -= 1; + end += 1; + } + } + + return count; +}; + +// 시간 복잡도: O(n^2) +// 공간 복잡도: O(1)