Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function solve(input = []) {
- let capacity = Number(input.shift());
- input.pop()
- let obj = {};
- for (let line of input) {
- let tokens = line.split('=');
- let command = tokens[0];
- switch (command) {
- case 'Add':
- let name = tokens[1];
- let sent = Number(tokens[2]);
- let received = Number(tokens[3]);
- if (!obj.hasOwnProperty(name)) {
- obj[name] = sent + received;
- }
- break;
- case 'Message':
- let sender = tokens[1];
- let receiver = tokens[2];
- obj[sender]++;
- obj[receiver]++;
- if (obj[sender] >= capacity) {
- console.log(`${sender} reached capacity.`);
- delete obj[sender]
- }
- else if (obj[receiver] >= capacity) {
- console.log(`${receiver} reached capacity.`);
- delete obj[receiver]
- }
- break;
- case 'Empty':
- let username = tokens[1];
- if (username === 'All') {
- for (const prop of Object.getOwnPropertyNames(obj)) {
- delete obj[prop];
- }
- }
- else if (obj.hasOwnProperty(username)) {
- delete obj[username];
- }
- break;
- }
- }
- let orderedNames = Object.entries(obj).sort((a, b) => a[1] - b[1] && b[0].localeCompare(a[0]));
- console.log(orderedNames);
- }
- solve([
- '20',
- 'Add=Mark=3=9',
- 'Add=Berry=5=5',
- 'Add=Clark=4=0',
- 'Empty=Berry',
- 'Add=Blake=9=3',
- 'Add=Michael=3=9',
- 'Add=Amy=9=9',
- 'Message=Blake=Amy',
- 'Message=Michael=Amy',
- 'Statistics'
- ])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement