Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function solve(arr) {
- let alphabet = ' ABCDEFGHIJKLMNOPQRSTUVWXYZ';
- let alphabetLength = alphabet.length;
- let templateLines = Number(arr.shift());
- let templateArray = [];
- for(let index in arr) {
- arr[index] = arr[index].split(' ').map(Number);
- }
- for(let i = 0; i < templateLines; i++) {
- let templateLine = arr.shift();
- templateArray.push(templateLine);
- }
- let templateLineLength;
- if(templateLines > 1) {
- templateLineLength = templateArray[0].length;
- } else {
- templateArray = templateArray[0].join(' ').split(' ');
- templateArray = templateArray.map(Number);
- templateLineLength = templateArray.length;
- }
- let counter = 0;
- let rowStart = 0;
- let nextRow = false;
- let rowLimit = templateLines;
- // change that shit later
- while(true) {
- let index = 0;
- if(counter >= arr.length) {
- counter = arr.length - 1;
- nextRow = true;
- }
- if(nextRow) {
- rowStart += templateLines;
- rowLimit = rowStart + templateLines;
- counter = 0;
- nextRow = false;
- }
- if(rowStart >= arr.length) {
- rowStart = arr.length - 1;
- }
- let columnLimit = counter + templateLineLength;
- if(rowLimit > arr.length) {
- rowLimit = arr.length;
- }
- if(columnLimit > arr[counter].length) {
- columnLimit = arr[counter].length;
- }
- for(let i = rowStart; i < rowLimit; i++) {
- // logic for each row
- // To DO : [for loop] for columns
- let columnIndex = 0;
- for(let j = counter; j < columnLimit; j++) {
- if(templateLines > 1) {
- arr[i][j] = arr[i][j] + templateArray[index][columnIndex];
- } else {
- arr[i][j] = arr[i][j] + templateArray[columnIndex];
- }
- columnIndex++;
- if(arr[i][j] >= alphabetLength) {
- arr[i][j] = arr[i][j] % alphabetLength;
- }
- arr[i][j] = alphabet[arr[i][j]];
- }
- index++;
- }
- counter += templateArray.length;
- let isFinished = false;
- for(let i = 0; i < arr.length; i++) {
- for(let j = 0; j < arr[i].length; j++) {
- if(!Number.isInteger(arr[i][j])) {
- isFinished = true;
- } else {
- isFinished = false;
- }
- }
- }
- if(isFinished) {
- break;
- }
- }
- for(let row in arr) {
- arr[row] = arr[row].join('');
- }
- console.log(arr.join(''));
- }
- // solve([ '2',
- // '59 36',
- // '82 52',
- // '4 18 25 19 8',
- // '4 2 8 2 18',
- // '23 14 22 0 22',
- // '2 17 13 19 20',
- // '0 9 0 22 22' ]
- // );
- solve(['1',
- '1 3 13',
- '12 22 14 13 25 0 4 24 23',
- '18 24 2 25 22 0 0 11 18',
- '8 25 6 26 8 23 13 4 14',
- '14 3 14 10 6 1 6 16 14',
- '11 12 2 10 24 2 13 24 0',
- '24 24 10 14 15 25 18 24 12',
- '4 24 0 8 4 22 19 22 14',
- '0 11 18 26 1 19 18 13 15',
- '8 15 14 26 24 14 26 24 14']);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement