Guest User

AoC day 9 part 1 solution

a guest
Dec 10th, 2024
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JavaScript 0.70 KB | Software | 0 0
  1. const fs = require('fs');
  2.  
  3. const data = fs
  4.     .readFileSync('./input.txt')
  5.     .toString()
  6.     .trim()
  7.     .replace(/\r/g, '')
  8.     .split('')
  9.     .map(Number);
  10.  
  11. const unpackedDisk = [];
  12.  
  13. for (let i = 0; i < data.length; i++) {
  14.     for (let j = data[i]; j > 0; j--) {
  15.         if (i % 2 === 0) {
  16.             unpackedDisk.push(i / 2);
  17.         } else {
  18.             unpackedDisk.push('.');
  19.         }
  20.     }
  21. }
  22.  
  23. // defrag
  24. unpackedDisk.forEach((block, index, arr) => {
  25.     if (block === '.') {
  26.         while (true) {
  27.             const temp = arr.pop();
  28.             if (temp === '.') {
  29.                 continue;
  30.             } else {
  31.                 arr[index] = temp;
  32.                 break;
  33.             }
  34.         }
  35.     }
  36. });
  37.  
  38. let checksum = 0;
  39.  
  40. unpackedDisk.forEach((block, id) => {
  41.     checksum += block * id;
  42. });
  43.  
  44. console.log(checksum);
  45.  
Add Comment
Please, Sign In to add comment