From e62a0af0ad7b9431d97d9d0ae6384b02436e07f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=91=90=EB=A6=AC?= Date: Sat, 19 Apr 2025 15:12:43 +0900 Subject: [PATCH 1/5] Solution Valid Palindrome --- valid-palindrome/doitduri.swift | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 valid-palindrome/doitduri.swift diff --git a/valid-palindrome/doitduri.swift b/valid-palindrome/doitduri.swift new file mode 100644 index 000000000..b9654768f --- /dev/null +++ b/valid-palindrome/doitduri.swift @@ -0,0 +1,6 @@ +class Solution { + func isPalindrome(_ s: String) -> Bool { + let strings = s.filter { $0.isLetter || $0.isNumber }.lowercased() + return String(strings.reversed()) == strings + } +} From a048c17fd801b55b6de798420b26a35c31299f7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=91=90=EB=A6=AC?= Date: Sat, 19 Apr 2025 15:26:46 +0900 Subject: [PATCH 2/5] Solution Number of 1 bits --- number-of-1-bits/doitduri.swift | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 number-of-1-bits/doitduri.swift diff --git a/number-of-1-bits/doitduri.swift b/number-of-1-bits/doitduri.swift new file mode 100644 index 000000000..036263d5f --- /dev/null +++ b/number-of-1-bits/doitduri.swift @@ -0,0 +1,6 @@ +class Solution { + func hammingWeight(_ n: Int) -> Int { + let bitString = String(n, radix: 2) + return bitString.filter { $0 == "1" }.count + } +} From 927999074286edbfe03c6e3f0c73e575fe116a7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=91=90=EB=A6=AC?= Date: Sat, 19 Apr 2025 15:40:36 +0900 Subject: [PATCH 3/5] Solution Combination sum --- combination-sum/doitduri.swift | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 combination-sum/doitduri.swift diff --git a/combination-sum/doitduri.swift b/combination-sum/doitduri.swift new file mode 100644 index 000000000..56861acfb --- /dev/null +++ b/combination-sum/doitduri.swift @@ -0,0 +1,31 @@ +class Solution { + func combinationSum(_ candidates: [Int], _ target: Int) -> [[Int]] { + if candidates.filter { $0 > target }.count == candidates.count { + return [] + } + + var result: [[Int]] = [] + var current: [Int] = [] + + func backtrack(_ start: Int, _ remain: Int) { + if remain == 0 { + result.append(current) + return + } + + if remain < 0 { + return + } + + for i in start.. Date: Sat, 19 Apr 2025 16:45:04 +0900 Subject: [PATCH 4/5] Solution Decode ways --- decode-ways/doitduri.swift | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 decode-ways/doitduri.swift diff --git a/decode-ways/doitduri.swift b/decode-ways/doitduri.swift new file mode 100644 index 000000000..733f2e180 --- /dev/null +++ b/decode-ways/doitduri.swift @@ -0,0 +1,31 @@ +class Solution { + func numDecodings(_ s: String) -> Int { + if s.first == "0" { + return 0 + } + + if s.count == 1 { + return 1 + } + + var tables = Array(repeating: 0, count: s.count+1) + let chars = Array(s) + tables[0] = 1 + tables[1] = 1 + + for i in 2...s.count { + if chars[i-1] != "0" { + tables[i] += tables[i-1] + } + + if let twoDigit = Int(String(chars[i-2...i-1])) { + if 10 <= twoDigit && twoDigit <= 26 { + tables[i] += tables[i-2] + } + } + + } + + return tables[s.count] + } +} From cdd182611f1024875cfefa57d1ef67f0b8bf6c3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=91=90=EB=A6=AC?= Date: Sat, 19 Apr 2025 18:27:43 +0900 Subject: [PATCH 5/5] Solution Maximum subarray --- maximum-subarray/doitduri.swift | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 maximum-subarray/doitduri.swift diff --git a/maximum-subarray/doitduri.swift b/maximum-subarray/doitduri.swift new file mode 100644 index 000000000..34de6df0b --- /dev/null +++ b/maximum-subarray/doitduri.swift @@ -0,0 +1,12 @@ +class Solution { + func maxSubArray(_ nums: [Int]) -> Int { + var currentSum = nums[0] + var maxSum = nums[0] + + for i in 1..