Advertisement
Guest User

Untitled

a guest
Jul 18th, 2019
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve (input) {
  2.     let participants = input.shift().split(', ');
  3.     let regexWords = /[A-Za-z]+/g;
  4.     let regexNumbers = /[0-9]/g;
  5.     let result = {};
  6.  
  7.     for (let racer of input) {
  8.         if (racer === 'end of race') {
  9.             break;
  10.         }
  11.         let name = racer.match(regexWords).join('');
  12.         let score = racer.match(regexNumbers).reduce((a, b) => Number(a)+ Number(b));
  13.         if (participants.indexOf(name) >= 0) {
  14.         if (!(name in result)) {
  15.             result[name] = [];
  16.             result[name].push(Number(score));
  17.         } else {
  18.             result[name].push(Number(score));
  19.         }
  20.       }
  21.     }
  22.     let finalRace = [];
  23.    
  24.     for (let players in result) {
  25.        let sum = result[players].reduce((a,b) => a + b);
  26.        result[players]['sum'] = sum;
  27.        finalRace.push([players, sum]);
  28.     }
  29.  
  30.     let finalResult = finalRace.sort((a, b) => b[1] - a[1]);
  31.     let counter = 1;
  32.    
  33.     for (let i = 0; i < finalResult.length; i++) {
  34.         let finalPlayer = finalResult[i];
  35.         if (counter === 1) {
  36.             console.log (`1st place: ${finalPlayer[0]}`);
  37.         } else if (counter === 2) {
  38.             console.log (`2nd place: ${finalPlayer[0]}`);
  39.         } else if (counter === 3) {
  40.             console.log (`3rd place: ${finalPlayer[0]}`);
  41.         } else {
  42.             break;
  43.         }
  44.         counter++;
  45.     }
  46.  
  47. }
  48.  
  49. solve ([ 'George, Peter, Bill, Tom',
  50. 'G4e@55or%6g6!68e!!@',
  51. 'R1@!3a$y4456@',
  52. 'B5@i@#123ll',
  53. 'G@e54o$r6ge#',
  54. '7P%et^#e5346r',
  55. 'T$o553m&6',
  56. 'end of race' ])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement