func solution(_ numbers:[Int], _ target:Int) -> Int {
var count = 0
func DFS(index: Int, sum: Int) {
if index == (numbers.count - 1) && sum == target { // 마지막 인덱스까지 모두 계산한 값이 target과 같다면
count += 1 // count를 +1해주고
return // 더 이상 계산할 값이 없으므로(자식노드가 없으므로) return 해준다
}
guard index + 1 < numbers.count else { return }
DFS(index: index+1, sum: sum + numbers[index + 1]) // +자식 노드 실행
DFS(index: index+1, sum: sum - numbers[index + 1]) // -자식 노드 실행
}
DFS(index: -1, sum: 0)
return count
}'프로그래머스 > Lv.2' 카테고리의 다른 글
| [Swift] 압축 (1) | 2023.03.13 |
|---|---|
| [Swift] 주차 요금 계산 (0) | 2023.02.07 |
| [Swift] k진수에서 소수 개수 구하기 (0) | 2023.02.05 |
| [Swift] 프린터 (0) | 2023.02.05 |
| [Swift] N개의 최소공배수 (0) | 2023.02.05 |