Ivankooo1

TaskPlanner

Nov 10th, 2019
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solution(arr){
  2.   let dailyTask = arr.shift().split(' ').map(Number);
  3.   arr.forEach(function(element){
  4.       if(element === 'End'){
  5.         return;
  6.       }
  7.       let token = element.split(' ');
  8.       let command = token.shift();
  9.       switch(command){
  10.           case 'Complete':
  11.                let ind = +token[0];
  12.                if(ind < 0 || ind >= dailyTask.length){
  13.                    break;
  14.                }
  15.                if(dailyTask.includes(ind)){
  16.                   dailyTask.splice(ind,1,0);
  17.                }
  18.                ;break;
  19.           case 'Change':
  20.                let index = +token[0];
  21.                let tim = +token[1];
  22.                if(index < 0 || index >= index.length){
  23.                   break;
  24.                }
  25.                if(dailyTask.includes(index)){
  26.                    dailyTask.splice(index,1,tim);
  27.                }
  28.                ;break;
  29.           case 'Drop':
  30.                let drop = +token[0];
  31.                if(drop < 0 || drop >= drop.length){
  32.                 break;
  33.                }
  34.                if(dailyTask.includes(drop)){
  35.                    dailyTask.splice(drop,1,-1);
  36.                }
  37.                ;break;
  38.           case 'Count':
  39.                switch(token[0]){
  40.                    case 'Completed':
  41.                         let counter = 0;
  42.                         for(let completed of dailyTask){
  43.                            if(completed === 0){
  44.                             counter++
  45.                            }
  46.                          
  47.                         }
  48.                         console.log(counter)
  49.                          ;break;
  50.                    case 'Incomplete':
  51.                          let sumIncomplete = 0;
  52.                          for(let incomplete of dailyTask){
  53.                              if(incomplete > 0){
  54.                                  sumIncomplete += incomplete;
  55.                              }
  56.                          }
  57.                          console.log(sumIncomplete)
  58.                          ;break;
  59.                    case 'Dropped':
  60.                         let sumDropped = 0;
  61.                         for(let dropped of dailyTask){
  62.                             if(dropped < 0){
  63.                                 sumDropped += dropped;
  64.                             }
  65.                         }
  66.                         console.log(Math.abs(sumDropped));
  67.                         ;break;
  68.                }
  69.                ;break;
  70.  
  71.       }
  72.   })
  73.   let incompleteTask = [];
  74.   for(let incompl of dailyTask){
  75.       if(incompl > 0){
  76.         incompleteTask.push(incompl)
  77.       }
  78.   }
  79.   console.log(incompleteTask.join(' '))
  80. }
  81. solution([
  82. // '1 -1 2 3 4 5',
  83. // 'Complete 4',
  84. // 'Change 0 4',
  85. // 'Drop 3',
  86. // 'Count Dropped',
  87. // 'End'
  88.  
  89. '1 2 3 4 5 4 0 3 2 1',
  90. 'Complete 0',
  91. 'Complete 1',
  92. 'Complete 2',
  93. 'Drop 3',
  94. 'Change 4 1',
  95. 'Count Completed',
  96. 'End',
  97.  
  98. ])
Advertisement
Add Comment
Please, Sign In to add comment