나의 기록, 현진록

[Swift] 프로그래머스 타겟넘버 본문

Programming/Algorithm & Data Structure

[Swift] 프로그래머스 타겟넘버

guswlsdk 2025. 3. 18. 10:15
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/43165

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

주어진 배열에 있는 숫자들로 더하거나 빼서 targetNumber를 만들기

 

- 주어진 배열에 있는 숫자들을 더하거나 뺀 값으로 재귀호출을 반복(DFS) 

- 재귀호출이 끝났을 경우 targetNumber와 같을 경우 count + 1

- 모든 DFS 종료 시 count 출력

 

import Foundation
func solution(_ numbers:[Int], _ target:Int) -> Int {
    func dfs(dept: Int, result: Int){
        if numbers.count-1 < dept{
            if result == target{
                count += 1
            }
            return
        }
        dfs(dept: dept+1, result: result - numbers[dept])
        dfs(dept: dept+1, result: result + numbers[dept])
    }
    var count = 0
    dfs(dept: 0, result: 0)
    return count
}
반응형