Add more utils

This commit is contained in:
2024-12-08 19:44:46 +01:00
parent 3bcb52f5a0
commit 0d36b97a28
7 changed files with 199 additions and 13 deletions
+6 -3
View File
@@ -1,5 +1,5 @@
import { describe, expect, it } from 'bun:test';
import { solveFirst } from './index.ts';
import { solveFirst, solveSecond } from './index.ts';
describe('2024-06', () => {
const testInput = `....#.....
@@ -16,7 +16,10 @@ describe('2024-06', () => {
expect(solveFirst(testInput)).toBe(41);
});
it('second', () => {
// that takes too long
// expect(solveSecond(testInput)).toBe(6);
// it takes too long
// so only run while `NODE_ENV=production bun test --coverage`
if (process.env.NODE_ENV === 'production') {
expect(solveSecond(testInput)).toBe(6);
}
});
});
+4 -8
View File
@@ -1,8 +1,4 @@
import { sumBy } from '../../utils/array.ts';
export function replace(arr: string[], x: number, y: number, char: string) {
arr[y] = arr[y].substring(0, x) + char + arr[y].substring(x + 1);
}
import { replaceChar, sumBy } from '../../utils/array.ts';
const directions = [
{ d: '^', x: 0, y: -1 },
@@ -28,7 +24,7 @@ export function solveFirst(input: string): number {
direction = (direction + 1) % 4;
}
replace(rows, x, y, 'X');
replaceChar(rows, x, y, 'X');
x += directions[direction].x;
y += directions[direction].y;
}
@@ -98,12 +94,12 @@ export function solveRow(
continue;
}
replace(rows, column, row, '#');
replaceChar(rows, column, row, '#');
if (!finishes(rows, startX, startY, startDirection)) {
found++;
}
replace(rows, column, row, '.');
replaceChar(rows, column, row, '.');
}
return found;
}