UNPKG

expeditaet

Version:
21 lines (17 loc) 820 B
import { task } from '@alexaegis/advent-of-code-lib'; import { findCorners } from '@alexaegis/advent-of-code-lib/functions'; import { mult } from '@alexaegis/advent-of-code-lib/math'; import { Vec2, type Vec2String } from '@alexaegis/advent-of-code-lib/model'; import packageJson from '../package.json'; import { parse } from './parse.function.js'; import { Tile } from './tile.class.js'; export const p1 = (input: string): number => { const tiles = parse(input); const tileMap = new Map<Vec2String, Tile>(); Tile.alignTiles(tiles[0], Vec2.ORIGIN, tiles, tileMap); const corners = findCorners([...tileMap.keys()].map((k) => new Vec2(k))); return Object.values(corners) .map((c: Vec2) => tileMap.get(c.toString())?.index ?? 0) .reduce(mult, 1); }; await task(p1, packageJson.aoc); // 22878471088273 ~170.90ms