From e80818019e588a211b211363e8d9208910f7ef3d Mon Sep 17 00:00:00 2001 From: std-freejia Date: Sat, 9 Aug 2025 17:38:12 +0900 Subject: [PATCH] feat: 3 --- decode-ways/std-freejia.java | 26 ++++++++++++++++++++++++++ number-of-1-bits/std-freejia.java | 10 ++++++++++ valid-palindrome/std-freejia.java | 6 ++++++ 3 files changed, 42 insertions(+) create mode 100644 decode-ways/std-freejia.java create mode 100644 number-of-1-bits/std-freejia.java create mode 100644 valid-palindrome/std-freejia.java diff --git a/decode-ways/std-freejia.java b/decode-ways/std-freejia.java new file mode 100644 index 000000000..0a9b39b5f --- /dev/null +++ b/decode-ways/std-freejia.java @@ -0,0 +1,26 @@ +class Solution { + public int numDecodings(String s) { + // 0 으로 시작하거나 빈 문자열이면 해독불가 + int sLen = s.length(); + if (sLen == 0 || s.charAt(0) == '0') return 0; + + int[] dp = new int[sLen+1]; + + dp[0] = 1; + dp[1] = 1; + + for (int i = 2; i <= sLen; i++) { + + int num = Integer.parseInt(s.substring(i-2, i)); + // 1자리 숫자로 해독 가능한 경우 + if (s.charAt(i-1) != '0') { + dp[i] += dp[i-1]; + } + // 2자리 숫자로 해독 가능한 경우 + if (num >= 10 && num <= 26) { + dp[i] += dp[i-2]; + } + } + return dp[sLen]; + } +} diff --git a/number-of-1-bits/std-freejia.java b/number-of-1-bits/std-freejia.java new file mode 100644 index 000000000..ba3e2054c --- /dev/null +++ b/number-of-1-bits/std-freejia.java @@ -0,0 +1,10 @@ +class Solution { + public int hammingWeight(int n) { + int count = 0; + while (n > 0) { + if ((n & 1) == 1) count++; + n >>= 1; + } + return count; + } +} diff --git a/valid-palindrome/std-freejia.java b/valid-palindrome/std-freejia.java new file mode 100644 index 000000000..04755790c --- /dev/null +++ b/valid-palindrome/std-freejia.java @@ -0,0 +1,6 @@ +class Solution { + public boolean isPalindrome(String s) { + String alphabetOnly = s.replaceAll("[^a-zA-Z0-9]", "").toLowerCase(); + return new StringBuilder(alphabetOnly).reverse().toString().equals(alphabetOnly); + } +}