요구능력 : 깊이우선탐색
코드설명 :
일반적인 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
}
'Algorithm > 문제풀이_프로그래머스' 카테고리의 다른 글
[Swift][Programmers][Queue] 프린터 (0) | 2022.04.12 |
---|---|
[Swift][Programmers][고득점Kit] 기능개발 (0) | 2022.04.12 |
[Swift][백트래킹][LV_3] 양과 늑대 (0) | 2022.02.26 |
[Swift][소수][LV_2] K진수에서 소수개수 구하기 (0) | 2022.02.25 |
[Swift][누적합][LV_3] 파괴되지 않은 건물 (0) | 2022.02.24 |
댓글