티스토리 뷰
문제
https://school.programmers.co.kr/learn/courses/30/lessons/43165
풀이
- 전체를 순회하면서 타켓과 값이 같은지 찾아야 하므로 dfs 채용
- dfs가 종료되는 지점은 index가 배열의 개수를 넘어서는 시점, 이때 타겟과 현재까지의 합이 같은지를 판별
- dfs진행은 index+1과 현재까지의 합인 sum으로 확인
전체코드
import Foundation
func dfs(index:Int, sum: Int, result: Int, numbers: [Int], target: Int) -> Int{
if index == numbers.count {
if sum == target {
return result+1
}
return result
}
let a = dfs(index: index+1, sum: sum + numbers[index], result: result, numbers: numbers, target: target)
let b = dfs(index: index+1, sum: sum - numbers[index], result: a, numbers: numbers, target: target)
return b
}
func solution(_ numbers:[Int], _ target:Int) -> Int {
return dfs(index: 0, sum: 0, result: 0, numbers: numbers, target: target)
}'PS > 문제 풀이' 카테고리의 다른 글
| [프로그래머스/Swift] 132265번 - 롤케이크 자르기 (0) | 2025.02.04 |
|---|---|
| [프로그래머스/Swift] 17677번 - [1차] 뉴스 클러스터링 (0) | 2025.02.03 |
| [프로그래머스/Swift] 42587번 - 프로세스 (0) | 2025.02.01 |
| [프로그래머스/Swift] 64065번 - 튜플 (0) | 2025.02.01 |
| [프로그래머스/Swift] 87946번 - 피로도 (1) | 2025.01.30 |
