Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function solve(input) {
- let startBand;
- let totaltime = 0;
- let bands = {};
- for (const line of input) {
- if (line === "start of concert") {
- startBand = input[input.length - 1];
- break;
- }
- let [command, band, token] = line.split("; ");
- switch (command) {
- case "Add":
- let arr = token.split(", ");
- if (!bands.hasOwnProperty(band)) {
- let members = new Set();
- bands[band] = {
- members: members,
- time: 0
- };
- }
- arr.forEach(member => bands[band].members.add(member));
- break;
- case "Play":
- let time = Number(token);
- if (!bands.hasOwnProperty(band)) {
- let groupers = new Set();
- bands[band] = {
- members: groupers,
- time: 0
- };
- }
- bands[band].time += time;
- totaltime += time;
- break;
- }
- }
- console.log(`Total time: ${totaltime}`);
- Object.entries(bands)
- .sort((a, b) => {
- if (b[1].time === a[1].time) {
- return a[0].localeCompare(b[0]);
- }
- return b[1].time - a[1].time;
- })
- .forEach(pair => {
- console.log(`${pair[0]} -> ${pair[1].time}`);
- });
- console.log(startBand);
- Array.from(bands[startBand].members).forEach(member =>
- console.log(`=> ${member}`)
- );
- }
Advertisement
Add Comment
Please, Sign In to add comment