Size: a a a

JavaScript Noobs — сообщество новичков

2021 February 26

БО

Богдан Ошовський... in JavaScript Noobs — сообщество новичков
Как вывести полное имя и расчет
https://codepen.io/Bodfx/pen/zYoRzjq?editors=1111
источник

С

Сергей Гетьман... in JavaScript Noobs — сообщество новичков
Dmitry Kozlov
Имплементацию все равно человеку самому писать :) на js кода готового нет.
плоховато что на JS нет
источник

DK

Dmitry Kozlov in JavaScript Noobs — сообщество новичков
Сергей Гетьман
плоховато что на JS нет
Вы справитесь! 👍
источник

С

Сергей Гетьман... in JavaScript Noobs — сообщество новичков
Dmitry Kozlov
Вы справитесь! 👍
так и там же разница сумм должна быть минимальной, а у в моей задаче одинаковая.
источник

DK

Dmitry Kozlov in JavaScript Noobs — сообщество новичков
Сергей Гетьман
так и там же разница сумм должна быть минимальной, а у в моей задаче одинаковая.
Прочитайте ваше задание ещё раз. Равенство двух сумм — это частный случай, минимальная разница, равная нулю
источник

БО

Богдан Ошовський... in JavaScript Noobs — сообщество новичков
Кто подскажет как вывести полное имя и расчет?
https://codepen.io/Bodfx/pen/zYoRzjq?editors=1111
источник

YP

Yarik Pesochenski in JavaScript Noobs — сообщество новичков
Да, спасибо, я как-то не подумал об этом сразу, вот только выводится только последнее значение
источник

YP

Yarik Pesochenski in JavaScript Noobs — сообщество новичков
Хотя их 2
источник

IS

Ivan Savin in JavaScript Noobs — сообщество новичков
Сергей Гетьман
плоховато что на JS нет
не смотрел в итоге алгоритм, написал свою мини-поделку, работает совсем не идеально, очевидно, но, я так понимаю, что условиям задания соответствует
источник

С

Сергей Гетьман... in JavaScript Noobs — сообщество новичков
Ivan Savin
не смотрел в итоге алгоритм, написал свою мини-поделку, работает совсем не идеально, очевидно, но, я так понимаю, что условиям задания соответствует
можно взглянуть ?
источник

DK

Dmitry Kozlov in JavaScript Noobs — сообщество новичков
Ivan Savin
не смотрел в итоге алгоритм, написал свою мини-поделку, работает совсем не идеально, очевидно, но, я так понимаю, что условиям задания соответствует
Какая сложность получилась?
источник

IS

Ivan Savin in JavaScript Noobs — сообщество новичков
Сергей Гетьман
можно взглянуть ?
(()=>{

function distribute(jsonData) {
   const sum = arr => arr.reduce((a, b) => a + b, 0);

   const data = JSON.parse(jsonData);

   const set1 = [];
   const set2 = [];

   while (data.set.length) {
       const element = data.set.pop();
       const sum1 = sum(set1);
       const sum2 = sum(set2);

       if ((sum1 + element - sum2) < (sum2 + element - sum1) ) {
           set1.push(element);
       } else {
           set2.push(element);
       }
   }
   
   const result = { set_1: set1, set_2: set2 };

   return JSON.stringify(result);
}

console.log(distribute('{"set": [4, 5, 6, 7, 8]}'));
console.log(distribute('{"set": [3, 3, 3, 7, 5]}'));

})()
источник

IS

Ivan Savin in JavaScript Noobs — сообщество новичков
Dmitry Kozlov
Какая сложность получилась?
не думаю, что её стоит оценивать у чего-то столь "крутого"
источник

IS

Ivan Savin in JavaScript Noobs — сообщество новичков
o(n) можно сделать
источник

YP

Yarik Pesochenski in JavaScript Noobs — сообщество новичков
Все, вот так все сработало, спасибо большое)
источник

АК

Алексей Коршунов... in JavaScript Noobs — сообщество новичков
Первое, что приходит в голову, сложить всё, поделить на 2. Пройтись по отсортированому, складывать пока сумма не больше или равна половине суммы + 10%
источник

IS

Ivan Savin in JavaScript Noobs — сообщество новичков
Сергей Гетьман
можно взглянуть ?
(()=>{

function distribute(jsonData) {
   const data = JSON.parse(jsonData);

   const set1 = [];
   const set2 = [];
   let sum1 = 0;
   let sum2 = 0;

   while (data.set.length) {
       const element = data.set.pop();

       if ((sum1 + element - sum2) < (sum2 + element - sum1) ) {
           set1.push(element);
           sum1 += element;
       } else {
           set2.push(element);
           sum2 += element;
       }
   }
   
   const result = { set_1: set1, set_2: set2 };

   return JSON.stringify(result);
}

console.log(distribute('{"set": [4, 5, 6, 7, 8]}'));
console.log(distribute('{"set": [3, 3, 3, 7, 5]}'));

})()


лучше так, чтоб лишнего не reducить
источник

С

Сергей Гетьман... in JavaScript Noobs — сообщество новичков
Ivan Savin
(()=>{

function distribute(jsonData) {
   const data = JSON.parse(jsonData);

   const set1 = [];
   const set2 = [];
   let sum1 = 0;
   let sum2 = 0;

   while (data.set.length) {
       const element = data.set.pop();

       if ((sum1 + element - sum2) < (sum2 + element - sum1) ) {
           set1.push(element);
           sum1 += element;
       } else {
           set2.push(element);
           sum2 += element;
       }
   }
   
   const result = { set_1: set1, set_2: set2 };

   return JSON.stringify(result);
}

console.log(distribute('{"set": [4, 5, 6, 7, 8]}'));
console.log(distribute('{"set": [3, 3, 3, 7, 5]}'));

})()


лучше так, чтоб лишнего не reducить
во втором случае +- нормально, а вот с первым завал...соотвецтвенно логика не совсем что нужно
источник

IS

Ivan Savin in JavaScript Noobs — сообщество новичков
Сергей Гетьман
во втором случае +- нормально, а вот с первым завал...соотвецтвенно логика не совсем что нужно
читайте внимательнее условия задачи)
источник

IS

Ivan Savin in JavaScript Noobs — сообщество новичков
Сергей Гетьман
во втором случае +- нормально, а вот с первым завал...соотвецтвенно логика не совсем что нужно
(()=>{

function distribute(jsonData) {
   const data = JSON.parse(jsonData);

   const set1 = [];
   const set2 = [];
   let sum1 = 0;
   let sum2 = 0;

   for (let idx = 0; idx < data.set.length; idx++) {
       const element = data.set[idx];

       if ((sum1 + element - sum2) < (sum2 + element - sum1) ) {
           set1.push(element);
           sum1 += element;
       } else {
           set2.push(element);
           sum2 += element;
       }
   }
   
   const result = { set_1: set1, set_2: set2 };

   return JSON.stringify(result);
}

console.log(distribute('{"set": [4, 5, 6, 7, 8]}'));
console.log(distribute('{"set": [3, 3, 3, 7, 5]}'));

})()

а ещё лучше так, побыстрее будет
источник