쥐수의 공부노트
백준 1182번 부분수열의 합 본문
728x90

정답 :
let input = readLine()!.split(separator: " ").map{Int($0)!}
let n = input[0]
let m = input[1]
let array = readLine()!.split(separator: " ").map{Int($0)!}
var cnt = 0
func check ( num : Int, total : Int) {
if num == n {
if total == m {
cnt += 1
}
return
}
check(num: num+1, total: total)
check(num: num+1, total: total+array[num])
}
check(num: 0, total: 0)
if m == 0 {
cnt -= 1
}
print(cnt)
마지막에 0일 경우에는 공집합을 제외하기에 cnt 에 -1 을 해준다
728x90
'바킹독 알고리즘 > 백트래킹' 카테고리의 다른 글
백준 9663번 N-Queen (0) | 2023.07.19 |
---|---|
백준 15649번 N과 M (1) (0) | 2023.07.12 |