문제
dfs
def solution(numbers, target):
answer = 0
def dfs(idx, result):
if idx == len(numbers):
if result == target:
nonlocal answer
answer += 1
else:
dfs(idx+1, result + numbers[idx])
dfs(idx+1, result - numbers[idx])
dfs(0, 0)
return answer
bfs
from collections import deque
def solution(numbers, target):
answer = 0
def bfs(idx, result):
queue = deque()
queue.append((idx, result))
while queue:
idx, result = queue.popleft()
if idx == len(numbers):
if result == target:
nonlocal answer
answer += 1
else:
queue.append((idx+1, result + numbers[idx]))
queue.append((idx+1, result - numbers[idx]))
bfs(0, 0)
return answer