kStoikow

Untitled

Oct 15th, 2019
275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve(input) {
  2.     let validOrder = /\%(?<name>[A-Z][a-z]+)\%([^|$%.])*\<(?<product>\w+)\>\2\|(?<count>\d+)\|\2(?<price>\d{1,}[.]?\d+)\$/g;
  3.     let totalMoney = 0;
  4.     let line = input.shift();
  5.  
  6.     while (line != 'end of shift') {
  7.         if (line.match(validOrder)) {
  8.             let currOrder = validOrder.exec(line);
  9.  
  10.             let currTotal = currOrder.groups.price * currOrder.groups.count;
  11.             totalMoney += currTotal;
  12.             console.log(`${currOrder.groups.name}: ${currOrder.groups.product} - ${currTotal.toFixed(2)}`);
  13.         }
  14.  
  15.         line = input.shift();
  16.     }
  17.    
  18.     console.log(`Total income: ${totalMoney.toFixed(2)}`);
  19. }
  20. solve(['%George%<Croissant>|2|10.3$',
  21.     '%Peter%<Gum>|1|1.3$',
  22.     '%Maria%<Cola>|1|2.4$',
  23.     'end of shift'])
Advertisement
Add Comment
Please, Sign In to add comment