글 작성자: 이지원🌩️

모든 조합을 만들어서, 연산을 해보고 target과 같으면 answer값을 1씩 증가시킨다.


문제

https://programmers.co.kr/learn/courses/30/lessons/43165


내가 작성한 코드

Swift

import Foundation
func solution(_ numbers:[Int], _ target:Int) -> Int {
var answer = 0
let n = numbers.count
var picked = [Bool]()
let op = [true, false]
func pick(toPick: Int) {
if toPick == 0 {
var sum = 0
for i in 0..<n {
if picked[i] {
sum += numbers[i]
} else {
sum -= numbers[i]
}
}
if sum == target {
answer += 1
}
return
}
for i in 0..<2 {
picked.append(op[i])
pick(toPick: toPick - 1)
picked.removeLast()
}
}
pick(toPick: n)
return answer
}
반응형

댓글

댓글을 사용할 수 없습니다.