예산

2020.07.29

const recur = (remainder, arr) => {
  const itemToBeDeleted = arr.find((num) => num >= remainder);
  if (itemToBeDeleted) {
    return arr.length - 1;
  }
  const largest = arr[arr.length - 1];
  remainder -= largest;
  arr.pop();
  return recur(remainder, arr);
};

const sortHelper = (a, b) => a - b;

const solution = (d, budget) => {
  const sum = d.reduce((acc, current) => acc + current);
  const remainder = sum - budget;
  if (remainder <= 0) {
    return d.length;
  }
  return recur(remainder, d.sort(sortHelper));
};
  • sum보다 budget이 클 때 remainder가 음수가 나오는데, remainder가 0일 때만 return d.lenght를 하도록 처음에 설정해서 예외를 찾는데 한참 걸렸다.

0개의 댓글