programmers.ターゲット番号(swift)
4091 ワード
programmers.ターゲット番号(swift)
問題の説明
n個の非負の整数.
たとえば、[1,1,1,1,1,1]で数字3を作成するには、次の図のように5つの方法を使用します.
数字を適当に加算して減算し、ターゲット番号を生成する方法の数を戻せばよい.
問題を解く
import Foundation
var cnt = 0
var targetcopy = 0
func DFS(_ numbers:[Int],_ index:Int,_ sum:Int){
if index == numbers.count{
if targetcopy == sum{
cnt += 1
}
return
}
DFS(numbers, index + 1, sum + numbers[index])
DFS(numbers, index + 1, sum - numbers[index])
}
func solution(_ numbers:[Int], _ target:Int) -> Int {
targetcopy = target
DFS(numbers, 0, 0)
return cnt
}
感想
基礎DFS問題を解いているような気がします.
DFSさえ分かれば、誰でも簡単にこの問題を解決できる.
问题的短片
Reference
この問題について(programmers.ターゲット番号(swift)), 我々は、より多くの情報をここで見つけました
https://velog.io/@junstone1995/programmers.타겟-넘버swift
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
import Foundation
var cnt = 0
var targetcopy = 0
func DFS(_ numbers:[Int],_ index:Int,_ sum:Int){
if index == numbers.count{
if targetcopy == sum{
cnt += 1
}
return
}
DFS(numbers, index + 1, sum + numbers[index])
DFS(numbers, index + 1, sum - numbers[index])
}
func solution(_ numbers:[Int], _ target:Int) -> Int {
targetcopy = target
DFS(numbers, 0, 0)
return cnt
}
Reference
この問題について(programmers.ターゲット番号(swift)), 我々は、より多くの情報をここで見つけました https://velog.io/@junstone1995/programmers.타겟-넘버swiftテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol