본문 바로가기
Algorithm/문제풀이_프로그래머스

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

by Joahnee 2022. 3. 14.

요구능력 : 깊이우선탐색

 

코드설명 : 

 

일반적인 DFS문제로 노드를 그려가면서 풀면 이해가 쉽다.

 

후기 : 그냥 DFS로 풀면되는걸.. 계속 순열로 풀려고 하다가 시간이 조금 걸렸다..

이걸 대체 왜 순열로 접근했을까..

func solution(_ numbers:[Int], _ target:Int) -> Int {
    var result = 0
    func dfs(_ depth: Int, _ sum: Int){
        if depth == numbers.count{
            if target == sum {
                result += 1
            }
            return
        }
        
        dfs(depth + 1, sum + numbers[depth])
        dfs(depth + 1, sum - numbers[depth])
    }
    dfs(0, 0)
    return result
}

댓글