DFS - 깊이 우선 탐색
BFS - 너비 우선 탐색
[1,1,1,1,1]의 numbers를 BFS를 이용하여 순서대로 탐색하여 나올 수 있는 모든 경우의 수를 배열로 저장하고, target과 같은 수의 개수를 return한다.
def solution(numbers, target):
start = [0]
for num in numbers:
tmp = []
for i in start:
tmp.append(i+num)
tmp.append(i-num)
start = tmp
answer = start.count(target)
return answer
def solution(numbers, target):
if not numbers and target == 0 :
return 1
elif not numbers:
return 0
else:
return solution(numbers[1:], target-numbers[0]) + solution(numbers[1:], target+numbers[0])
재귀함수, 깊이우선탐색 코드에 대한 개념이 잘 잡혀있지 않아 이해하는 데에 오래 걸렸다.