재귀를 이용해서 문제를 풀었다.
재귀를 돌면서 만약 cnt가 길이랑 같으면 멈추고 target이랑 비교를 했다.
return을 해주면 길이가 1 짧아지고 -로 바뀐다.
class A:
answer = 0
def __init__(self, numbers, target):
self.numbers = numbers
self.target = target
def rec(self, s, cnt):
if cnt == len(self.numbers):
if s == self.target:
self.answer += 1
return
else:
return
self.rec(s + self.numbers[cnt], cnt + 1)
self.rec(s - self.numbers[cnt], cnt + 1)
def solution(self):
self.rec(0, 0)
return self.answer
def solution(numbers, target):
a = A(numbers, target)
return a.solution()