모든 조합을 만들어서, 연산을 해보고 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 }
댓글을 사용할 수 없습니다.