Mac Plus

Hello Swift

프로그래머스-타겟넘버(Swift)

문제 해설
  • 모든 배열을 돌아다니면서 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))