Advertisement
desito07

Followers

Jul 30th, 2020
213
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve(input){
  2.     let followers = {};
  3.     persons = 0;
  4.    
  5.     for(let i = 0; i < input.length; i++){
  6.         let [ command, username, count] = input[i].split(': ');
  7.         // console.log(command);        
  8.        switch(command){
  9.         case "New follower":
  10.             if(!followers.hasOwnProperty(username)){
  11.                 followers[username] = [];                                                 persons++;  
  12.             }            
  13.             break;
  14.         case "Like":                        
  15.             if(!followers.hasOwnProperty(username)){
  16.                 followers[username] = [];
  17.                 followers[username].push(count);
  18.                 persons++;                                    
  19.             } else {
  20.                 followers[username] += count;
  21.                          
  22.             }                        
  23.             break;
  24.         case "Comment":                      
  25.             if(!followers.hasOwnProperty(username)){
  26.                 followers[username] = [];               ;                
  27.                 followers[username] = 1;
  28.                 persons++;                                          
  29.             } else {
  30.                 followers[username]++;
  31.                              
  32.             }            
  33.             break;
  34.         case "Blocked":
  35.             if(followers.hasOwnProperty(username)){
  36.                 delete followers[username];
  37.                 persons--;
  38.             } else {
  39.                 console.log(`${username} doesn't exist.`);
  40.            }
  41.            break;
  42.        case "Log out":
  43.            break;
  44.       }                        
  45.    }
  46.    let sorted = Object.entries(followers).sort((a, b) => b[1] - a[1]
  47.    || a[0].localeCompare(b[0]));
  48.    console.log(`${persons} followers`);
  49.    for(let kvp of sorted){        
  50.        console.log(`${kvp[0]}: ${kvp[1]}`);
  51.    }    
  52. }
  53. solve([
  54.    'New follower: gosho',
  55.    'Like: gosho: 5',
  56.    'Comment: gosho',
  57.    'New follower: gosho',
  58.    'New follower: tosho',
  59.    'Comment: gosho',
  60.    'Comment: tosho',
  61.    'Comment: pesho',
  62.    'Log out'
  63.  ]
  64.  );
  65.  solve([
  66.    'Like: A: 3',
  67.    'Comment: A',
  68.    'New follower: B',
  69.    'Blocked: A',
  70.    'Comment: B',
  71.    'Like: C: 5',
  72.    'Like: D: 5',
  73.    'Log out']);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement