자료구조와 알고리즘

프로그래머스 타겟 넘버

juwanseo 2025. 3. 26. 21:21

문제

def solution(numbers, target):
    answer = 0
    leaves = [0]
    for num in numbers:
        li = []
        for parent in leaves:
            li.append(parent + num)
            li.append(parent - num)
        leaves = li
    for leaf in leaves:
        if leaf == target:
            answer += 1
    return answer

leaves 라는 변수로 리스트를 만들고 for문을 돌려서 parent와 num을 더한것을 append할수 있도록 만든다 그리고 leaf와 target이 같을때 answer에 1을 더해나가야 되기 때문에 answer += 1을 하고 마지막으로 출력에서 answer을 출력한다

또한 부모 노드와 자식노드를  for문으로 돌려가면서 각각 leaves를 li로 지정하거나 answer에 1씩 더해간다