-
PrefixSum_Leetcode_1248. Count Number of Nice Subarrays [swift]알고리즘/알고리즘 문제풀이 2025. 3. 11. 17:02
https://leetcode.com/problems/count-number-of-nice-subarrays/description/
문제접근
nums의 부분집합 중, k개 이상의 odd를 가진 부분집합의 갯수를 반환
nums를 0 과 1로 변환한다. 그리고 PrefixSum을 수행한다.
그러면 sum은 odd의 갯수이다.
정답코드
더보기class Solution { func numberOfSubarrays(_ nums: [Int], _ k: Int) -> Int { var nums = nums.map { $0 % 2 } var sol = 0 var map: [Int: Int] = [0: 1] func recursive(_ curSum: Int, _ curIdx: Int) { guard curIdx < nums.count else { return } let newSum = curSum + nums[curIdx] sol += map[newSum-k, default: 0] map[newSum, default: 0] += 1 recursive(newSum, curIdx + 1) map[newSum]! -= 1 } recursive(0,0) return sol } }
'알고리즘 > 알고리즘 문제풀이' 카테고리의 다른 글
PrefixSum_Leetcode_303. Range Sum Query - Immutable [swift] (0) 2025.03.13 PrefixSum_Leetcode_238. Product of Array Except Self [swift] (0) 2025.03.13 PrefixSum_Leetcode_523. Continuous Subarray Sum [swift] (0) 2025.03.11 PrefixSum_Leetcode_974 Subarray Sums Divisible by K [swift] (0) 2025.03.11 PrefixSum_Leetcode_560. Subarray Sum Equals K [swift] (0) 2025.03.10