expeditaet
Version:
Advent of Code Solutions
21 lines (17 loc) • 820 B
text/typescript
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