From d4a3f56d2dd8443e491f4b6c06e6aad2ce7bf362 Mon Sep 17 00:00:00 2001 From: Ju Hwijung Date: Mon, 16 Mar 2026 18:52:18 +0900 Subject: [PATCH 1/3] =?UTF-8?q?3=EC=A3=BC=EC=B0=A8=20=EB=AC=B8=EC=A0=9C=20?= =?UTF-8?q?=ED=92=80=EC=9D=B4=201=EA=B0=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Number of 1 Bits --- number-of-1-bits/hwi-middle.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 number-of-1-bits/hwi-middle.cpp diff --git a/number-of-1-bits/hwi-middle.cpp b/number-of-1-bits/hwi-middle.cpp new file mode 100644 index 000000000..d3d81b139 --- /dev/null +++ b/number-of-1-bits/hwi-middle.cpp @@ -0,0 +1,19 @@ +class Solution { +public: + int hammingWeight(int n) { + // 아주 간편한 풀이가 있지만... + // return __builtin_popcount(n); + + // 직접 해보기 + int cnt = 0; + for (unsigned int i = 1 << 31; i > 0; i /= 2) + { + if ((n & i) != 0) + { + cnt++; + } + } + + return cnt; + } +}; From fe1cfaa34134f4bff6aee3b614984aa78dc2082f Mon Sep 17 00:00:00 2001 From: Ju Hwijung Date: Wed, 18 Mar 2026 15:43:52 +0900 Subject: [PATCH 2/3] =?UTF-8?q?3=EC=A3=BC=EC=B0=A8=20=EB=AC=B8=EC=A0=9C=20?= =?UTF-8?q?=ED=92=80=EC=9D=B4=202=EA=B0=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Decode Ways - Maximum Subarray --- decode-ways/hwi-middle.cpp | 34 +++++++++++++++++++++++++++++++ valid-palindrome/hwi-middle.cpp | 36 +++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 decode-ways/hwi-middle.cpp create mode 100644 valid-palindrome/hwi-middle.cpp diff --git a/decode-ways/hwi-middle.cpp b/decode-ways/hwi-middle.cpp new file mode 100644 index 000000000..2152eb51b --- /dev/null +++ b/decode-ways/hwi-middle.cpp @@ -0,0 +1,34 @@ +class Solution { +public: + int numDecodings(string s) { + int d[101]; + int len = s.size(); + + if (s[0] == '0') // 0으로 시작할 수 없음 + { + return 0; + } + + d[0] = 1; // 빈 문자열 -> 1가지 방법 + d[1] = 1; // 첫 문자 -> 1가지 방법 (0이 아닌건 확인했음) + + for (int i = 2; i <= len; ++i) + { + d[i] = 0; + + // 0이 아니어서 단독으로 해석 가능한 경우 + if (s[i - 1] != '0') + { + d[i] += d[i - 1]; + } + + // 앞글자와 조합해서 유효한 두 자리가 될 수 있는 경우 + if (s[i - 2] == '1' || (s[i - 2] == '2' && s[i - 1] <= '6')) + { + d[i] += d[i - 2]; + } + } + + return d[len]; + } +}; diff --git a/valid-palindrome/hwi-middle.cpp b/valid-palindrome/hwi-middle.cpp new file mode 100644 index 000000000..3a39c7944 --- /dev/null +++ b/valid-palindrome/hwi-middle.cpp @@ -0,0 +1,36 @@ +class Solution { +public: + bool isPalindrome(string s) { + int len = s.size(); + int l = 0; + int r = len - 1; + + while (l <= r) + { + while (l <= r &&!isalnum(s[l])) + { + l++; + } + + while (l <= r && !isalnum(s[r])) + { + r--; + } + + if (l > r) + { + break; + } + + if (tolower(s[l]) != tolower(s[r])) + { + return false; + } + + l++; + r--; + } + + return true; + } +}; From 42be3de31ea64c254b100f00693234beeddb1b3f Mon Sep 17 00:00:00 2001 From: Ju Hwijung Date: Wed, 18 Mar 2026 15:47:26 +0900 Subject: [PATCH 3/3] =?UTF-8?q?3=EC=A3=BC=EC=B0=A8=20=EB=AC=B8=EC=A0=9C=20?= =?UTF-8?q?=ED=92=80=EC=9D=B4=201=EA=B0=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Maximum Subarray --- maximum-subarray/hwi-middle.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 maximum-subarray/hwi-middle.cpp diff --git a/maximum-subarray/hwi-middle.cpp b/maximum-subarray/hwi-middle.cpp new file mode 100644 index 000000000..7349d2657 --- /dev/null +++ b/maximum-subarray/hwi-middle.cpp @@ -0,0 +1,20 @@ +class Solution { +public: + int maxSubArray(vector& nums) { + int cur = 0; + int ans = -1e5; + for (int n : nums) + { + // 이전까지 합이 음수라면 무조건 다시 시작하는게 이득 + if (cur < 0) + { + cur = 0; + } + + cur += n; + ans = max(cur, ans); + } + + return ans; + } +};