プログラマ目標番号



質問リンク

コードの説明


DFSで全方位ナビゲーションを行い,目標数が現れるたびにカウントを行う.ずっと方向を探して、基本功の問題を解いて、少し慌てました.基本からやり直します!!

ソースコード

#include <string>
#include <vector>
#include<iostream>
using namespace std;

int answer = 0;
void dfs(vector<int> numbers,int cnt, int sum,int target) {
    if (cnt == numbers.size() ) {
        if(sum == target)       answer++;
        return;
    }
    
    
    
        dfs(numbers, cnt+1, sum + numbers[cnt], target);
        dfs(numbers, cnt+1, sum - numbers[cnt], target);
    
     

}
int solution(vector<int> numbers, int target) {
    
    dfs(numbers,0, 0,target);
    
    cout << answer;
    return answer;
}

int main() {
    solution({ 1,1,1,1,1 }, 3);


    return 0;
}