자바스크립트 코딩테스트 '바둑이 승차'

릿·2021년 9월 9일
0

코딩테스트

목록 보기
7/27

철수가 그의 트럭이 태울 수 있는 최대한인 C킬로그램 내로 최대한 바둑이들을 무겁게 태우고 싶어한다. 철수가 트럭에 태울 수 있는 가장 무거운 무게를 구하는 프로그램을 작성하시오.

  1. 내 풀이 :
    앞 문제의 소스를 사용하여 max변수에 C를 넘지 않는 최댓값으로 교체해주었다.
function solution(c, arr){
    let answer=0;
    let max=Number.MIN_SAFE_INTEGER;
    function DFS(L, sum) {
        if (L===arr.length) {
            if (max < sum && c > sum) max=sum;
        }
        else {
            DFS(L+1, sum+arr[L]);
            DFS(L+1, sum);
        }
    }
    DFS(0, 0);
    answer=max;
    return answer;
}

let arr=[81, 58, 42, 33, 61];
console.log(solution(259, arr));
  1. 쌤 풀이 :
    쌤은 내장함수를 써서 코드를 더 줄이셨다...
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));
profile
새로운 도전과 재미를 추구하는 프론트엔드 개발자

0개의 댓글