mirror of
https://github.com/Baipyrus/AoC-23.git
synced 2024-11-12 17:13:48 +00:00
init d8p2
This commit is contained in:
parent
7233c861cb
commit
a0b9c210e6
29
Day8/Part2.js
Normal file
29
Day8/Part2.js
Normal file
@ -0,0 +1,29 @@
|
||||
import { readFileSync } from "fs";
|
||||
const t0 = performance.now();
|
||||
|
||||
const input = readFileSync("input.txt")
|
||||
.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();
|
||||
console.log(`Runtime: ${t1 - t0}ms`);
|
Loading…
Reference in New Issue
Block a user