최대점수 구하기 : DFS

frenchkebab·2021년 8월 31일
post-thumbnail

풀이

function solution(m, ps, pt) {
  let answer = Number.MIN_SAFE_INTEGER;
  let n = ps.length;
  function DFS(k, sum, t) {
    if (t > m) return;
    if (k >= n) {
      answer = Math.max(answer, sum);
      return;
    }
    DFS(k + 1, sum + ps[k], t + pt[k]);
    DFS(k + 1, sum, t);
  }
  DFS(0, 0, 0);
  return answer;
}

let ps = [10, 25, 15, 6, 7];
let pt = [5, 12, 8, 3, 4];
console.log(solution(20, ps, pt));

바둑이 승차 문제를 풀고 나서 완전히 Solution 풀이와 동일하게 풀 수 있었다 ㅠㅠ

profile
Blockchain Dev Journey

0개의 댓글