작성
·
248
·
수정됨
0
<script>
function solution(c, arr){
let answer=Number.MIN_SAFE_INTEGER;
let n=arr.length;
function DFS(L, sum){
if(sum>c) return;
if(L===n){
answer=Math.max(answer, sum);
}
else{
DFS(L+1, sum+arr[L]);
DFS(L+1, sum);
}
}
DFS(0, 0);
return answer;
}
let arr=[81, 58, 42, 33, 61];
console.log(solution(259, arr));
</script>
아직 재귀에 대한 이해가 짧아 잘 모르겠습니다.
답은 242인데,
만약 sum의 값이 181이었고 다음에 나온 sum의 값이
275라고 한다면
sum>259일때 return으로 함수가 종료되고
최대값인 242를 찾지 못하고 181로 종료가 될수도 있는것 아닌가요??
아니면 제가 이해를 잘못한건지요??
답변 1
0