Advertisement
-Enigmos-

concert.js

Apr 11th, 2022
918
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function concert(input) {
  2.     let index = 0;
  3.     let line = input[index];
  4.     index++;
  5.     let record = {};
  6.     let totalTime = 0;
  7.  
  8.     while (line !== 'Start!') {
  9.         let menu = line.split('; ');
  10.         let command = menu[0];
  11.         let bandName = menu[1];
  12.         let time = Number(menu[2]);
  13.         let info = {};
  14.         let members = [];
  15.  
  16.         if (command === 'Add') {
  17.             let members = menu.slice(2).join('').split(', ');
  18.             for (let member of members) {
  19.                 if (!record.hasOwnProperty(bandName)) {
  20.                     record[bandName] = info;
  21.                     record[bandName].members = members;
  22.                     record[bandName].time = 0;
  23.                 } else if (!record[bandName].members.includes(member)) {
  24.                     record[bandName].members.push(member);
  25.                 }
  26.             }
  27.         } else if (command === 'Play') {
  28.             if (!record.hasOwnProperty(bandName)) {
  29.                 record[bandName] = info;
  30.                 record[bandName].members = members;
  31.                 record[bandName].time = time;
  32.                 totalTime += time;
  33.             } else {
  34.                 record[bandName].time += time;
  35.                 totalTime += time;
  36.             }
  37.         }
  38.  
  39.         line = input[index];
  40.         index++;
  41.     }
  42.     console.log(`Total time: ${totalTime}`);
  43.     for (let bandName in record) {
  44.         console.log(`${bandName} -> ${record[bandName].time}`);
  45.     }
  46.     for (let bandName in record) {
  47.         console.log(bandName);
  48.         for (let member of record[bandName].members) {
  49.             console.log(`=> ${member}`);
  50.         }
  51.         break;
  52.     }
  53. }
  54.  
  55. concert(["Play; The Beatles; 2584",
  56.     "Add; The Beatles; John Lennon, George Harrison, Ringo Starr",
  57.     "Add; The Beatles; Paul McCartney, George Harrison",
  58.     "Add; The Rolling Stones; Brian Jones, Mick Jagger, Keith Richards",
  59.     "Play; The Rolling Stones; 4239",
  60.     "Start!"]);
  61.  
  62. console.log('---');
  63.  
  64. concert(["Add; The Beatles; John Lennon, Paul McCartney",
  65.     "Add; The Beatles; Paul McCartney, George Harrison",
  66.     "Add; The Beatles; George Harrison, Ringo Starr",
  67.     "Play; The Beatles; 3698",
  68.     "Play; The Beatles; 3828",
  69.     "Start!"]);
  70.  
  71. console.log('---');
  72.  
  73. concert(["Add; The Beatles; John Lennon, Paul McCartney, George Harrison, Ringo Starr",
  74.     "Play; The Beatles; 4569",
  75.     "Play; The Beatles; 2456",
  76.     "Play; Queen; 1250",
  77.     "Add; Queen; Freddie Mercury, Brian May, Roger Taylor, John Deacon",
  78.     "Play; Queen; 6215",
  79.     "Start!"]);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement