문제 해설
- 모든 배열을 돌아다니면서 idx가 numbers의 count와 같아질때 sum의 값이 target랑 같다면 answer += 1 해준다.
import Foundation
var numSize = 0
var answer = 0
func dfs( _ idx: Int, _ sum: Int, _ target: Int, _ numbers: [Int]) {
if idx == numSize {
if sum == target {
answer += 1
}
return
}
dfs(idx + 1, sum + numbers[idx], target, numbers)
dfs(idx + 1, sum - numbers[idx], target, numbers)
}
func solution(_ numbers:[Int], _ target:Int) -> Int {
numSize = numbers.count
dfs(0, 0, target, numbers)
return answer
}
print(solution([1,1,1,1,1], 3))