Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function solve(params) {
- params.pop(); //махаме последния елемент от масива (не ни трябва)
- //селектираме всеки един от параметрите сплитваме го по # (става на масив от стрингове)
- //от масива от стрингове селектираме всеки един стринг и го парсваме към Number
- //сортираме първоначалния масив със сортиращата ни функция
- let batches = params.map(e => e.split('#').map(Number)).sort(sortBatches);
- let bestBatch = batches[0]; //вземаме първият елемент от сортиращата функция и принтираме
- console.log(`Best Batch quality: ${sum(bestBatch)}\n${bestBatch.join(' ')}`);
- function sortBatches(arr1, arr2) { //сортиращата ни функция която приема 2 масива от числа
- let arr1Sum = sum(arr1); //сумираме елементите от първия масив (имаме помощна функция sum по-надолу)
- let arr2Sum = sum(arr2); //сумираме елементите от втория масив (имаме помощна функция sum по-надолу)
- let result = arr2Sum - arr1Sum; //изваждаме сумата на втория от сумата на първия (първи критерий за сортиране)
- if (result === 0) { //при равни суми на масивите правим втори критерий за сортиране
- let arr1Average = arr1Sum / arr1.length; //смятаме средноаритметичната сума на първия масив
- let arr2Average = arr2Sum / arr2.length; //смятаме средноаритметичната сума на втория масив
- result = arr2Average - arr1Average; //презаписваме резултата (втори критерий за сортиране)
- if (result === 0) { //при равни средноаритметични суми
- result = arr1.length - arr2.length; //трети критерий за сортиране дължината на първия - дължината на втория масив
- }
- }
- return result; //връщаме резултата от сравнението на двата масива
- }
- function sum(arr) {
- return arr.reduce((a, b) => a + b, 0); //помощна функция връща сумата от числата на масив
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment