Advertisement
vladovip

RosettaStone_ArrAdv_MoreEx

Feb 17th, 2022
1,028
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // score points around 60 out of 100. Thus this code has to be refined.
  2.  
  3. function solve(arr) {
  4.    
  5.     let rowsTemplate = Number(arr[0]);
  6.     let templateMatrix = [];
  7.     let templateCol = 0;
  8.     let counter = 0;
  9.     for (let i = 1; i <= rowsTemplate; i++) {
  10.         counter++;
  11.         templateMatrix.push(arr[i].split(' ').map(Number));
  12.     }
  13.     templateCol += counter;
  14.     counter = 0;
  15.     let messageMatrix = [];
  16.     let messageRows = arr.length - rowsTemplate - 1;
  17.     let messageCol = 0;
  18.     for (let i = rowsTemplate + 1; i < arr.length; i++) {
  19.         counter++;
  20.         messageMatrix.push(arr[i].split(' ').map(Number));
  21.     }
  22.     messageCol += counter;
  23.     counter = 0;
  24.     //fill the overlap matrix:
  25.     let matrix = messageMatrix;
  26.     let outputMessage = '';
  27.     for (let row = 0; row < matrix.length; row++) {
  28.         for (let col = 0; col < matrix[row].length; col++) {
  29.             matrix[row][col] += templateMatrix[row % rowsTemplate][col % templateCol];
  30.         }
  31.     }
  32.     for (let i = 0; i < matrix.length; i++) {
  33.         for (let j = 0; j < matrix[i].length; j++) {
  34.             let num = matrix[i][j] % 27;
  35.             if (num != 0) {
  36.                 matrix[i][j] = String.fromCharCode(num + 64);
  37.             } else {
  38.                 matrix[i][j] = ' ';
  39.             }
  40.         }
  41.     }
  42.     for (let i = 0; i < matrix.length; i++) {
  43.         for (let j = 0; j < matrix[i].length; j++) {
  44.             outputMessage += matrix[i][j];
  45.         }
  46.     }
  47.     console.log(outputMessage);
  48. }
  49. solve ([ '2',
  50. '59 36',
  51. '82 52',
  52. '4 18 25 19 8',
  53. '4 2 8 2 18',
  54. '23 14 22 0 22',
  55. '2 17 13 19 20',
  56. '0 9 0 22 22' ]
  57. );
  58.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement