From 52def01d740d819d1f23becc27220918a1ce0824 Mon Sep 17 00:00:00 2001 From: Alix von Schirp Date: Tue, 11 Nov 2025 04:42:07 +0100 Subject: [PATCH] 2015/3 --- src/2015/3/1/index.ts | 39 +++++++++++++++++++++++ src/2015/3/2/index.ts | 72 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 111 insertions(+) create mode 100644 src/2015/3/1/index.ts create mode 100644 src/2015/3/2/index.ts diff --git a/src/2015/3/1/index.ts b/src/2015/3/1/index.ts new file mode 100644 index 0000000..7a1bdd3 --- /dev/null +++ b/src/2015/3/1/index.ts @@ -0,0 +1,39 @@ +export default async function runner(inputPath: string) { + const input = await Bun.file(inputPath).text(); + + let houses = 1; + + const map: boolean[][] = []; + + let x: number = 0; + let y: number = 0; + + + map[0] = [] + map[0][0] = true; + + for (var char of input) { + switch (char) { + case '>': + x++; + break; + case '<': + x--; + break; + case '^': + y++; + break; + case 'v': + y--; + break; + } + if(!map[x]) map[x] = []; + if(map[x][y]) continue; + map[x][y] = true; + + houses++; + + } + + console.log(houses); +} diff --git a/src/2015/3/2/index.ts b/src/2015/3/2/index.ts new file mode 100644 index 0000000..ebc085b --- /dev/null +++ b/src/2015/3/2/index.ts @@ -0,0 +1,72 @@ +export default async function runner(inputPath: string) { + const input = await Bun.file(inputPath).text(); + + let cnt: number = 0; + + let houses = 1; + + const map: boolean[][] = []; + + let x: number = 0; + let y: number = 0; + + let roboX: number = 0; + let roboY: number = 0; + + map[0] = [] + map[0][0] = true; + for (var char of input) { + + cnt++; + if(cnt%2 === 1) { + switch (char) { + case '>': + x++; + break; + case '<': + x--; + break; + case '^': + y++; + break; + case 'v': + y--; + break; + default: break; + } + if(!map[x]) map[x] = []; + if(map[x][y]) { + continue; + } + map[x][y] = true; + + houses++; + } else { + switch (char) { + case '>': + roboX++; + break; + case '<': + roboX--; + break; + case '^': + roboY++; + break; + case 'v': + roboY--; + break; + default: break; + } + if(!map[roboX]) map[roboX] = []; + if(map[roboX][roboY]) { + continue; + } + map[roboX][roboY] = true; + + houses++; + } + + } + + console.log(houses); +}