プログラマ:ターゲット番号




私の草

function solution(numbers, target) {
    let answer = 0;
	
  	dfs(0,0)
  
    function dfs(depth, sum){
        if(depth === numbers.length){
          if(sum === target){
              answer++
          }
          return
        }
        // 동시 다발적으로 수행
        dfs(depth + 1, sum + numbers[depth])
        dfs(depth + 1, sum - numbers[depth])
    }
    return answer;
}
これは初めて接触した再帰関数で,2つの理解が困難である.
これまでは,一方向コードのみを記述し,同時に多発コードに触れることで,コンピュータの偉大さを認識してきた.dfs(0,0)を信号弾とし、深さが5に達したとき、目標値と同じであれば++と答え、異なる場合はその場で関数を終了する.