Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const fs = require('fs');
- const data = fs
- .readFileSync('./input.txt')
- .toString()
- .trim()
- .replace(/\r/g, '')
- .split('')
- .map(Number);
- const unpackedDisk = [];
- for (let i = 0; i < data.length; i++) {
- for (let j = data[i]; j > 0; j--) {
- if (i % 2 === 0) {
- unpackedDisk.push(i / 2);
- } else {
- unpackedDisk.push('.');
- }
- }
- }
- // defrag
- unpackedDisk.forEach((block, index, arr) => {
- if (block === '.') {
- while (true) {
- const temp = arr.pop();
- if (temp === '.') {
- continue;
- } else {
- arr[index] = temp;
- break;
- }
- }
- }
- });
- let checksum = 0;
- unpackedDisk.forEach((block, id) => {
- checksum += block * id;
- });
- console.log(checksum);
Add Comment
Please, Sign In to add comment