Problem Link : https://school.programmers.co.kr/learn/courses/30/lessons/43165
이전에 풀어보았지만 복습겸 + dfs, bfs 알고리즘 연습해보려고 다시 풀어보았다.
따지고보면 크게 어려운 점은 없는 문제였는데..
요즘 코.테 문제를 풀면서 느끼는건데 개인적으로 내가 생각한 것을 코드로 구현하는 과정에서 어려움을 느끼는 것 같다..
def solution(numbers, target):
answer = 0
leaves = [0]
for num in numbers :
temp =[]
for leaf in leaves :
temp.append(leaf + num)
temp.append(leaf - num)
leaves = temp
for leaf in leaves :
if leaf == target :
answer +=1
return answer
그래서 예를 들면
ex . numbers = [4, 1, 2, 1]
numbers에 4가 있다면
+4 , -4
그리고 그 다음 -1,+1
+4 + 1 , +4-1/ -4+1, -4-1
....
이런 식으로(그림으로 그려보면 더 이해가 감)
뻗어나가서 해당 문제는 dfs/bfs 를 이용하여 풀 수 있다..
2.leaves에 넣어준 경우의 수를 가지고 target과 일치해야 한다든 조건에 부합한 경우의 수를 count해 주고 해당 값을 반환한다.