solved d8p1

This commit is contained in:
Baipyrus 2023-12-09 19:57:23 +01:00
parent 8775123025
commit 7233c861cb

View File

@ -1,8 +1,29 @@
import { readFileSync } from "fs"; import { readFileSync } from "fs";
const t0 = performance.now(); const t0 = performance.now();
const input = readFileSync("input.txt").toString(); const input = readFileSync("input.txt")
console.log(input); .toString()
.split("\n")
.filter((e) => e.length > 0);
const instructions = input[0].split("");
const maps = input.slice(1).map((a) => {
const [name, pair] = a.split(" = ");
const mapping = pair.match(/^\(([A-Z]{3}), ([A-Z]{3})\)$/);
const [_, L, R] = mapping;
return { name, mapping: { L, R } };
});
let count,
index = (count = 0);
let current = maps.find((e) => e.name === "AAA");
while (current.name !== "ZZZ") {
const direction = instructions[index];
const mapping = current.mapping[direction];
current = maps.find((e) => e.name === mapping);
index = (index + 1) % instructions.length;
count++;
}
console.log(count);
const t1 = performance.now(); const t1 = performance.now();
console.log(`Runtime: ${t1 - t0}ms`); console.log(`Runtime: ${t1 - t0}ms`);