n
0 level 1
1 -1 level 2 1
2 0 0 -2 level 3 1
3 1 1 -1 1 -1 -1 -3 level 4 1
parent
리스트에 0을 넣어 초기화하며, numbers
for문을 돌면서 (n
) 트리가 한 층씩 내려간다.
parent
아이템에 +n
, -n
을 한 값들로 parent
를 업데이트 해준다.
parent
리스트 아이템들 중에서 target
의 개수를 반환한다.
def solution(numbers, target):
parent = [0]
for n in numbers:
children = []
for p in parent:
children.append(p + n)
children.append(p - n)
parent = children
return sum([1 for p in parent if p == target])
fun solution(numbers: IntArray, target: Int): Int {
var parent = mutableListOf(0)
numbers.forEach { number ->
val children = mutableListOf<Int>()
parent.forEach { node ->
children.add(node + number)
children.add(node - number)
}
parent = children
}
return parent.count { it == target }
}