dilyana2001

Untitled

Jul 22nd, 2021 (edited)
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve(arr) {
  2.     let armies = {};
  3.     arr.forEach(line => {
  4.         if (line.includes('arrives')) {
  5.             let [leader] = line.split(' arrives');
  6.             if (!armies.hasOwnProperty(leader)) armies[leader] = [];
  7.         } else if (line.includes(':')) {
  8.             let [leader, args] = line.split(': ');
  9.             let [armyName, armyCount] = args.split(', ');
  10.             if (armies.hasOwnProperty(leader)) {
  11.                 if (!armies[leader].flat().includes(armyName)) {
  12.                     armies[leader].push([armyName, Number(armyCount)]);
  13.                 }
  14.             }
  15.         } else if (line.includes('+')) {
  16.             let [armyName, armyCount] = line.split(' + ');
  17.             for (let army in armies) {
  18.                 if (armyName === armies[army][0][0]) armies[army][0][1] += Number(armyCount);
  19.             }
  20.         } else if (line.includes('defeated')) {
  21.             let [leader] = line.split(' defeated');
  22.             if (armies.hasOwnProperty(leader)) delete armies[leader];
  23.         }
  24.     });
  25.     Object.entries(armies)
  26.         .sort((a, b) => b[1].flat().filter((x, i) => i % 2 != 0).reduce((a, b) => a + b, 0) - a[1].flat().filter((x, i) => i % 2 != 0).reduce((a, b) => a + b, 0))
  27.         .map(x => console.log(`${x[0]}: ${x[1].flat().filter((x, i) => i % 2 != 0).reduce((a, b) => a + b ,0)}\n${x[1].map(x=>`>>> ${x[0]} - ${x[1]}`).join('\n')}`));
  28. }
Add Comment
Please, Sign In to add comment