function solution(m, ps, pt){
let answer=Number.MIN_SAFE_INTEGER;
let n=ps.length;
function DFS(L, sum, time){
if(time>m) return;
if(L===n){
answer=Math.max(answer, sum);
}
else{
DFS(L+1, sum+ps[L], time+pt[L]);
DFS(L+1, sum, time);
}
}
DFS(0, 0, 0);
return answer;
}
time이 m보다 크면 return해주어 다음 재귀함수가 실행 될 수 있도록 한다.
이 방법은 너무많은 예시의 갯수가 나오면 사용하기 힘들다. (모든 경우의 수를 구해야 하므로...)