알고리즘/알고리즘 문제풀이
PrefixSum_Leetcode_560. Subarray Sum Equals K [swift]
Downey
2025. 3. 10. 17:37
https://leetcode.com/problems/subarray-sum-equals-k/description/
누적합 문제의 이론은 대략 이해를 했다. 라고 생각했는데,,
문제를 계속 풀면서 이해를 더하고 체화시키는게 목표
재귀탐색코드
더보기
class Solution {
func subarraySum(_ nums: [Int], _ k: Int) -> Int {
var sol = 0
var map = [Int: Int]()
map[0] = 1
func recursive(curIdx: Int, pastSum: Int) {
guard curIdx < nums.count else { return }
let curSum = pastSum + nums[curIdx]
sol += map[curSum - k, default: 0]
map[curSum, default: 0] += 1
recursive(curIdx: curIdx + 1, pastSum: curSum)
map[curSum]! -= 1
}
recursive(curIdx: 0, pastSum: 0)
return sol
}
}
모범코드
더보기
class Solution {
func subarraySum(_ nums: [Int], _ k: Int) -> Int {
var sol = 0
var map = [Int: Int]()
map[0] = 1
var sum = 0
for i in 0..<nums.count {
sum += nums[i]
sol += map[sum - k ,default: 0]
map[sum, default: 0] += 1
}
return sol
}
}