Advertisement
Guest User

02. Race

a guest
Mar 25th, 2020
795
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 line = input.shift();
  4.     let partsObj = {}
  5.     while (line !== 'end of race') {
  6.         let patternName = /\d+|@|&|#|\$|%|!|\^/g;
  7.         let name = line.replace(patternName, "")
  8.         let patternDistance = /[A-Za-z]+|@|&|#|\$|%|!|\^/g;
  9.         let distance = line.replace(patternDistance, "")
  10.         let distanceSum = 0;
  11.         for (let i = 0; i < distance.length; i++) {
  12.             let digit = Number(distance[i])
  13.             distanceSum += digit;
  14.         }
  15.         if (participants.includes(name)){
  16.             if (!partsObj.hasOwnProperty(name)) {
  17.                 partsObj[name] = distanceSum
  18.             } else {
  19.                 partsObj[name] += distanceSum
  20.             }
  21.         }
  22.         line = input.shift();
  23.     }
  24.     let partsArr = []
  25.     for (let partName in partsObj) {
  26.         partsArr.push([partName, partsObj[partName]])
  27.     }
  28.     partsArr.sort((a,b)=>b[1]-a[1])
  29.     console.log(`1st place: ${partsArr[0][0]}`);
  30.     console.log(`2nd place: ${partsArr[1][0]}`);
  31.     console.log(`3rd place: ${partsArr[2][0]}`);
  32. }
  33.  
  34.  
  35. // solve([
  36. //     'George, Peter, Bill, Tom',
  37. //     'G4e@55or%6g6!68e!!@',
  38. //     'R1@!3a$y4456@',
  39. //     'B5@i@#123ll',
  40. //     'G@e54o$r6ge#',
  41. //     '7P%et^#e5346r',
  42. //     'T$o553m&6',
  43. //     'end of race'
  44. //   ]
  45. //   )
  46. //   1st place: George
  47. //   2nd place: Peter
  48. //   3rd place: Tom
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement