프로그래머스 타겟 넘버

조항주·2022년 4월 19일
0

algorithm

목록 보기
32/50
post-thumbnail

문제

https://programmers.co.kr/learn/courses/30/lessons/43165?language=javascript

코드

JS

let answer=0;

function dfs(d, target, numbers, sum){
    if(d===numbers.length){
        if(sum===target)
            answer++;
        return;
    }
    dfs(d+1,target,numbers,sum+numbers[d]);
    dfs(d+1,target,numbers,sum-numbers[d]);
}

function solution(numbers, target) {
    dfs(0,target,numbers,0);
    return answer;
}

python

answer = 0


def dfs(sum, d, numbers, target):
    global answer
    if d == len(numbers) and sum == target:
        answer += 1
        return

    dfs(sum+numbers[d], d+1, numbers, target)
    dfs(sum-numbers[d], d+1, numbers, target)


def solution(numbers, target):

    dfs(0, 0, numbers, target)
    return answer

풀이

dfs로 간단하게 풀 수 있는데 재귀함수를 사용하여 모든 경우의 수를 쉽게 탐색해봤습니다.

0개의 댓글