AoC-23/Day11/Part1.js

28 lines
635 B
JavaScript
Raw Normal View History

2023-12-12 09:12:20 +00:00
import { readFileSync } from "fs";
const t0 = performance.now();
2023-12-12 09:13:08 +00:00
const input = readFileSync("input.txt")
.toString()
.split(/\r*\n/)
.filter((e) => e.length > 0)
.map((e) => e.split(""));
const expand = (arr) =>
arr.reduce(
(a, i) => [
...a,
...(i.some((e) => e !== ".") ? [i] : [i, Array(i.length).fill(".")]),
],
[]
);
2023-12-12 09:13:38 +00:00
const flip = (current) =>
Array.from({ length: current[0].length }, (_, x) =>
Array.from({ length: current.length }, (_, y) => current[y][x])
);
2023-12-12 09:13:08 +00:00
2023-12-12 09:13:38 +00:00
const universe = flip(expand(flip(expand(input))));
console.log(universe);
2023-12-12 09:12:20 +00:00
const t1 = performance.now();
console.log(`Runtime: ${t1 - t0}ms`);