[프로그래머스] 타겟 넘버

Eunyoung Han·2022년 8월 2일
0

해결방법

  • 종료조건은 depth가 숫자개수만큼 왔을 때!
    이 때 타겟 숫자와 계산결과와 같은지 확인한다.
  • 아직 depth에 도달하지 않았으면 숫자를 더하거나 / 뺀 값을 부르기

소스코드

#include <string>
#include <vector>
#include <iostream>

using namespace std;

vector<int> nums;
int t;
int answer = 0;

void dfs(int sum, int depth){
    if(depth == nums.size()){
        if(sum == t) answer++;
        return;
    }
    dfs(sum-nums[depth], depth+1);
    dfs(sum+nums[depth], depth+1);
}

int solution(vector<int> numbers, int target) {
    nums = numbers; t = target;
    dfs(0,0);
    return answer;
}
profile
HIU. CE / LG Elec.

0개의 댓글