Advertisement
Guest User

AoC 2021 day 05

a guest
Dec 5th, 2021
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const { triggerAsyncId } = require('async_hooks');
  2. const { toNamespacedPath, parse } = require('path');
  3.  
  4. fs = require('fs')
  5.  
  6. fs.readFile('input_test.txt', 'utf8', function (err,input) {
  7.   if (err) {
  8.     return console.log(err);
  9.   }
  10.  
  11.   input = input.replace(/ -> /g, ";");
  12.   input = input.trim().split('\n');
  13.   var points = new Object();
  14.  
  15.   input.forEach(element => {
  16.     element = element.split(";");
  17.     var start = element[0].split(",");
  18.     var end = element[1].split(",");
  19.     if (start[0] === end[0] || start[1] === end[1]) {//linee verticali o orizzontali
  20.       if (start[0] < end[0]) { //se la x di start e' minore dell'end
  21.         for (var x=start[0]; x<=end[0]; x++) {
  22.           if (start[1] < end[1]) {//se la y di start e' minore dell'end
  23.             for (var y=start[1]; y<=end[1]; y++) {
  24.               if (points[x+','+y] === undefined) points[x+','+y]=1;
  25.               else points[x+','+y]++;
  26.             }
  27.           } else { //se la y di start e' maggiore dell'end
  28.             for (var y=start[1]; y>=start[1]; y--) {
  29.               if (points[x+','+y] === undefined) points[x+','+y]=1;
  30.               else points[x+','+y]++;
  31.             }
  32.           }
  33.         }
  34.       } else {//se la x di start e' maggiore dell'end
  35.         for (var x=start[0]; x>=end[0]; x--) {
  36.           if (start[1] < end[1]) {//se la y di start e' minore dell'end
  37.             for (var y=start[1]; y<=end[1]; y++) {
  38.               if (points[x+','+y] === undefined) points[x+','+y]=1;
  39.               else points[x+','+y]++;
  40.             }
  41.           } else { //se la y di start e' maggiore dell'end
  42.             for (var y=start[1]; y>=start[1]; y--) {
  43.               if (points[x+','+y] === undefined) points[x+','+y]=1;
  44.               else points[x+','+y]++;
  45.             }
  46.           }
  47.         }
  48.       }
  49.     }
  50.   });
  51.  
  52.   var count = 0;
  53.   for (var coord in points) {
  54.     if (points[coord] > 1) count++;
  55.   }
  56.  
  57.   console.log(count);
  58. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement