Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function concert(input) {
- let index = 0;
- let line = input[index];
- index++;
- let record = {};
- let totalTime = 0;
- while (line !== 'Start!') {
- let menu = line.split('; ');
- let command = menu[0];
- let bandName = menu[1];
- let time = Number(menu[2]);
- let info = {};
- let members = [];
- if (command === 'Add') {
- let members = menu.slice(2).join('').split(', ');
- for (let member of members) {
- if (!record.hasOwnProperty(bandName)) {
- record[bandName] = info;
- record[bandName].members = members;
- record[bandName].time = 0;
- } else if (!record[bandName].members.includes(member)) {
- record[bandName].members.push(member);
- }
- }
- } else if (command === 'Play') {
- if (!record.hasOwnProperty(bandName)) {
- record[bandName] = info;
- record[bandName].members = members;
- record[bandName].time = time;
- totalTime += time;
- } else {
- record[bandName].time += time;
- totalTime += time;
- }
- }
- line = input[index];
- index++;
- }
- console.log(`Total time: ${totalTime}`);
- for (let bandName in record) {
- console.log(`${bandName} -> ${record[bandName].time}`);
- }
- for (let bandName in record) {
- console.log(bandName);
- for (let member of record[bandName].members) {
- console.log(`=> ${member}`);
- }
- break;
- }
- }
- concert(["Play; The Beatles; 2584",
- "Add; The Beatles; John Lennon, George Harrison, Ringo Starr",
- "Add; The Beatles; Paul McCartney, George Harrison",
- "Add; The Rolling Stones; Brian Jones, Mick Jagger, Keith Richards",
- "Play; The Rolling Stones; 4239",
- "Start!"]);
- console.log('---');
- concert(["Add; The Beatles; John Lennon, Paul McCartney",
- "Add; The Beatles; Paul McCartney, George Harrison",
- "Add; The Beatles; George Harrison, Ringo Starr",
- "Play; The Beatles; 3698",
- "Play; The Beatles; 3828",
- "Start!"]);
- console.log('---');
- concert(["Add; The Beatles; John Lennon, Paul McCartney, George Harrison, Ringo Starr",
- "Play; The Beatles; 4569",
- "Play; The Beatles; 2456",
- "Play; Queen; 1250",
- "Add; Queen; Freddie Mercury, Brian May, Roger Taylor, John Deacon",
- "Play; Queen; 6215",
- "Start!"]);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement