본문 바로가기

알고리즘

[DFS] 프로그래머스 - 타겟 넘버 문제

https://school.programmers.co.kr/learn/courses/30/lessons/43165

DFS로 풀기

nbs = list
tg = int
answer = 0

def solution(numbers, target):
    global nbs, tg, answer

    nbs = numbers
    tg = target
    
    dfs(0, 0)
    
    return answer

def dfs(index, sum):
    global answer
    # 탈출 조건
    if(index == len(nbs)):
        if(sum == tg):
            answer += 1
        return
    
    # 실행문
    dfs(index+1, sum+nbs[index])
    dfs(index+1, sum-nbs[index])

참고
https://www.youtube.com/watch?v=S2JDw9oNNDk