Advertisement
Lulunga

mid exam 03. Last Stop

Jun 29th, 2019
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve(input) {
  2.     let paintingNumbers = input.shift().split(' ').map(Number);
  3.     for (let line of input) {
  4.         if (line === 'END') {
  5.             break
  6.         }
  7.         let tokens = line.split(' ');
  8.         let command = tokens[0];
  9.         if (command === 'Change') {
  10.             let paintingNumber = Number(tokens[1]);
  11.             let changedNumber = Number(tokens[2]);
  12.             let index = paintingNumbers.indexOf(paintingNumber);
  13.             if (index !== -1) {
  14.                 paintingNumbers[index] = changedNumber;
  15.             }
  16.         } else if (command === 'Hide') {
  17.             let paintingNumber = Number(tokens[1]);
  18.             let index = paintingNumbers.indexOf(paintingNumber);
  19.             if (index !== -1) {
  20.                 paintingNumbers.splice(index, 1);
  21.             }
  22.         } else if (command === 'Switch') {
  23.             let paintingNumber = Number(tokens[1]);
  24.             let paintingNumber2 = Number(tokens[2]);
  25.             let indexOfFirst = paintingNumbers.indexOf(paintingNumber);
  26.             let indexOfSecond = paintingNumbers.indexOf(paintingNumber2);
  27.             if (indexOfFirst !== -1 && indexOfSecond !== -1) {
  28.                 paintingNumbers[indexOfFirst] = paintingNumber2;
  29.                 paintingNumbers[indexOfSecond] = paintingNumber;
  30.             }
  31.         } else if (command === 'Insert') {
  32.             let index = Number(tokens[1]) + 1;
  33.             let paintingNumber = Number(tokens[2]);
  34.             if (index >= 0 && index <= paintingNumbers.length) {
  35.                 paintingNumbers.splice(index, 0, paintingNumber);
  36.             }
  37.         } else if (command === 'Reverse') {
  38.             paintingNumbers.reverse();
  39.         }
  40.  
  41.     }
  42.     console.log(paintingNumbers.join(' '));
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement