function minimalHeaviestSetA(arr) { let result = []; const sum = (arr) => arr.reduce((acc, curr) => acc + curr, 0); const sortedArr = [...arr].sort((x, y) => x - y > 0 ? -1 : 1); const n = sortedArr.length; const target = sum(arr) / 2 for(let i = 0; i < n; i++) { if(sum(result) > target) { break } result[i] = sortedArr[i]; } return result.reverse(); }