From b689915f87094a4be98219bba9371842e710c451 Mon Sep 17 00:00:00 2001 From: JungHm Date: Sun, 13 Apr 2025 16:07:18 +0900 Subject: [PATCH 1/3] solve: valid palindrome --- valid-palindrome/JustHm.swift | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 valid-palindrome/JustHm.swift diff --git a/valid-palindrome/JustHm.swift b/valid-palindrome/JustHm.swift new file mode 100644 index 000000000..930ebb97d --- /dev/null +++ b/valid-palindrome/JustHm.swift @@ -0,0 +1,11 @@ +class Solution { + func isPalindrome(_ s: String) -> Bool { + let answer = s.lowercased().filter { + if $0.isLetter || $0.isNumber { + return true + } + return false + } + return answer == String(answer.reversed()) ? true : false + } +} From 8448f5ba1592c0b1a2b144406a393f0b15dac095 Mon Sep 17 00:00:00 2001 From: JungHm Date: Mon, 14 Apr 2025 11:02:08 +0900 Subject: [PATCH 2/3] solve: number of 1 bits --- number-of-1-bits/JustHm.swift | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 number-of-1-bits/JustHm.swift diff --git a/number-of-1-bits/JustHm.swift b/number-of-1-bits/JustHm.swift new file mode 100644 index 000000000..198e7e592 --- /dev/null +++ b/number-of-1-bits/JustHm.swift @@ -0,0 +1,21 @@ +// time: O(n) +class Solution { + func hammingWeight(_ n: Int) -> Int { + return String(n, radix: 2).filter{$0 == "1"}.count + } +} +// time: O(1), space: O(1) +class AnotherSolution { + func hammingWeight(_ n: Int) -> Int { + var count = 0 + var num = n + // 최대 32비트이기 때문에 반복을 32번 돌며 비트를 순회함 + for _ in 0..<32 { + if num & 1 == 1 { // 가장 오른쪽 비트만 가져와 1인지 확인함 + count += 1 // 비트가 1이면 count 증가 + } + num >>= 1 // 오른쪽으로 1비트 이동 + } + return count + } +} From ae6f8d9a74068d7a8b2e0f17438206f128809a18 Mon Sep 17 00:00:00 2001 From: JungHm Date: Thu, 17 Apr 2025 00:18:58 +0900 Subject: [PATCH 3/3] solve: combination sum --- combination-sum/JustHm.swift | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 combination-sum/JustHm.swift diff --git a/combination-sum/JustHm.swift b/combination-sum/JustHm.swift new file mode 100644 index 000000000..f9474bd0d --- /dev/null +++ b/combination-sum/JustHm.swift @@ -0,0 +1,26 @@ +// 해설 참조.. +class Solution { + func combinationSum(_ candidates: [Int], _ target: Int) -> [[Int]] { + // 우선 답변용, 조합 찾기용 변수 생성 + var answer = [[Int]]() + var nums = [Int]() + // 백트래킹 기법으로 로직 작성, + // 현재 원소 위치와 합했을때의 값을 인자로 받음 + func backtracking(start: Int, total: Int) { + // 전처리 + if total > target { return } // total이 target 보다 크면 조합X + else if total == target { return answer.append(nums) } // 같으면 답변용 변수에 추가 + + // 시작 부분부터 값을 하나씩 더해서 재귀로 돌려봄 + for index in start..