summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLizzy Hunt <lizzy.hunt@usu.edu>2023-12-01 16:13:41 -0700
committerLizzy Hunt <lizzy.hunt@usu.edu>2023-12-01 16:13:41 -0700
commit7fd957642236b5b64972b4e3f66fe48feecb735b (patch)
tree2d5d83f93cb90220a6ce6098780ef0b6e8bdf601
parent888cd821acc7582255320e0ddbddd2495e505cd4 (diff)
downloadaoc-7fd957642236b5b64972b4e3f66fe48feecb735b.tar.gz
aoc-7fd957642236b5b64972b4e3f66fe48feecb735b.zip
final test for the setup. aoc 2021 / 2
-rw-r--r--aoc_2021/day-02/example.test.ts22
-rw-r--r--aoc_2021/day-02/logs/.gitkeep0
-rw-r--r--aoc_2021/day-02/logs/out_1.txt7
-rw-r--r--aoc_2021/day-02/logs/out_2.txt7
-rw-r--r--aoc_2021/day-02/part_1.ts41
-rw-r--r--aoc_2021/day-02/part_2.ts42
-rw-r--r--aoc_2021/day-02/problem.txt1000
7 files changed, 1119 insertions, 0 deletions
diff --git a/aoc_2021/day-02/example.test.ts b/aoc_2021/day-02/example.test.ts
new file mode 100644
index 0000000..d1cb264
--- /dev/null
+++ b/aoc_2021/day-02/example.test.ts
@@ -0,0 +1,22 @@
+import { expect, test } from "bun:test";
+import { main as part1 } from "./part_1";
+import { main as part2 } from "./part_2";
+
+const example = `forward 5
+down 5
+forward 8
+up 3
+down 8
+forward 2`.split("\n");
+
+test("part1", async () => {
+ const answer = 150;
+ const res = await part1(example);
+ expect(res).toEqual(answer);
+});
+
+test("part2", async () => {
+ const answer = 900;
+ const res = await part2(example);
+ expect(res).toEqual(answer);
+});
diff --git a/aoc_2021/day-02/logs/.gitkeep b/aoc_2021/day-02/logs/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/aoc_2021/day-02/logs/.gitkeep
diff --git a/aoc_2021/day-02/logs/out_1.txt b/aoc_2021/day-02/logs/out_1.txt
new file mode 100644
index 0000000..11e1c20
--- /dev/null
+++ b/aoc_2021/day-02/logs/out_1.txt
@@ -0,0 +1,7 @@
+=== COMPUTATION ===
+
+
+=== /COMPUTATION ===
+
+=== ANSWER TO P1 ===
+1480518
diff --git a/aoc_2021/day-02/logs/out_2.txt b/aoc_2021/day-02/logs/out_2.txt
new file mode 100644
index 0000000..eb0d962
--- /dev/null
+++ b/aoc_2021/day-02/logs/out_2.txt
@@ -0,0 +1,7 @@
+=== COMPUTATION ===
+
+
+=== /COMPUTATION ===
+
+=== ANSWER TO P2 ===
+1282809906
diff --git a/aoc_2021/day-02/part_1.ts b/aoc_2021/day-02/part_1.ts
new file mode 100644
index 0000000..ecd75aa
--- /dev/null
+++ b/aoc_2021/day-02/part_1.ts
@@ -0,0 +1,41 @@
+export const main = async (lines: string[]): Promise<number | string> => {
+ const { depth, horiz } = lines
+ .map((line) => line.split(" "))
+ .reduce(
+ (acc, [dir, delta]) => {
+ const d = Number(delta);
+ if (dir === "forward") {
+ acc.horiz += d;
+ }
+
+ if (dir === "up") {
+ acc.depth -= d;
+ }
+ if (dir === "down") {
+ acc.depth += d;
+ }
+ return acc;
+ },
+ { horiz: 0, depth: 0 },
+ );
+
+ return depth * horiz;
+};
+
+//
+
+const isrun = process.argv.length > 1 && process.argv[1] === import.meta.path;
+if (isrun) {
+ const file = Bun.file("./problem.txt");
+ const text = await file.text();
+ const lines = text.split("\n");
+
+ console.log("=== COMPUTATION ===\n");
+
+ const answer = await main(lines);
+
+ console.log("\n=== /COMPUTATION ===\n");
+
+ console.log("=== ANSWER TO P1 ===");
+ console.log(answer);
+}
diff --git a/aoc_2021/day-02/part_2.ts b/aoc_2021/day-02/part_2.ts
new file mode 100644
index 0000000..3451ba3
--- /dev/null
+++ b/aoc_2021/day-02/part_2.ts
@@ -0,0 +1,42 @@
+export const main = async (lines: string[]): Promise<number | string> => {
+ const { depth, horiz } = lines
+ .map((line) => line.split(" "))
+ .reduce(
+ (acc, [dir, delta]) => {
+ const d = Number(delta);
+ if (dir === "forward") {
+ acc.horiz += d;
+ acc.depth += acc.aim * d;
+ }
+
+ if (dir === "up") {
+ acc.aim -= d;
+ }
+ if (dir === "down") {
+ acc.aim += d;
+ }
+ return acc;
+ },
+ { horiz: 0, depth: 0, aim: 0 },
+ );
+
+ return depth * horiz;
+};
+
+//
+
+const isrun = process.argv.length > 1 && process.argv[1] === import.meta.path;
+if (isrun) {
+ const file = Bun.file("./problem.txt");
+ const text = await file.text();
+ const lines = text.split("\n");
+
+ console.log("=== COMPUTATION ===\n");
+
+ const answer = await main(lines);
+
+ console.log("\n=== /COMPUTATION ===\n");
+
+ console.log("=== ANSWER TO P2 ===");
+ console.log(answer);
+}
diff --git a/aoc_2021/day-02/problem.txt b/aoc_2021/day-02/problem.txt
new file mode 100644
index 0000000..9e714f9
--- /dev/null
+++ b/aoc_2021/day-02/problem.txt
@@ -0,0 +1,1000 @@
+forward 2
+down 8
+down 1
+up 7
+forward 4
+down 4
+down 3
+forward 2
+forward 5
+forward 2
+forward 7
+forward 8
+down 7
+forward 6
+forward 1
+down 8
+down 8
+up 9
+down 9
+forward 1
+up 1
+forward 6
+forward 7
+down 7
+forward 4
+forward 2
+forward 1
+forward 3
+forward 8
+forward 4
+up 6
+down 2
+forward 4
+down 3
+up 3
+up 2
+up 3
+forward 8
+down 5
+down 8
+down 5
+down 4
+down 2
+up 1
+forward 6
+forward 6
+forward 8
+up 5
+down 5
+forward 8
+forward 7
+down 9
+down 7
+down 6
+down 3
+forward 3
+up 7
+forward 2
+up 6
+forward 7
+forward 9
+down 9
+forward 3
+down 2
+down 2
+down 7
+down 7
+forward 8
+down 7
+forward 9
+up 7
+down 4
+down 8
+forward 2
+forward 2
+up 1
+forward 8
+down 5
+forward 8
+forward 4
+up 1
+forward 2
+forward 2
+forward 2
+down 9
+down 7
+down 9
+forward 9
+forward 4
+up 7
+down 4
+forward 9
+forward 8
+up 5
+up 1
+down 1
+down 9
+down 6
+up 8
+forward 2
+forward 7
+up 7
+forward 7
+forward 6
+down 6
+forward 8
+up 6
+forward 7
+down 7
+forward 4
+forward 9
+up 9
+up 8
+forward 8
+forward 3
+up 1
+up 4
+down 4
+up 9
+up 8
+forward 6
+down 2
+down 2
+up 4
+forward 4
+forward 1
+down 8
+forward 6
+down 5
+forward 6
+down 8
+up 1
+forward 1
+up 9
+down 8
+up 3
+up 9
+forward 9
+forward 2
+down 2
+up 6
+up 6
+forward 8
+up 3
+down 3
+forward 5
+up 2
+forward 1
+forward 1
+forward 8
+down 4
+forward 8
+forward 7
+down 8
+forward 7
+down 7
+down 2
+down 1
+down 7
+up 9
+down 5
+up 1
+forward 7
+down 5
+down 9
+down 2
+down 8
+down 4
+forward 2
+forward 2
+forward 1
+down 6
+up 7
+forward 2
+down 1
+down 5
+forward 3
+forward 8
+down 4
+up 2
+up 9
+up 7
+forward 7
+forward 4
+up 8
+up 3
+up 4
+forward 6
+down 7
+forward 7
+up 6
+down 9
+up 6
+forward 4
+up 3
+down 3
+up 6
+down 9
+down 6
+forward 7
+forward 9
+forward 2
+down 6
+up 3
+up 9
+forward 9
+forward 8
+up 4
+up 5
+forward 6
+down 5
+up 4
+up 9
+down 8
+forward 5
+up 5
+forward 7
+forward 6
+down 8
+down 5
+down 2
+up 5
+down 8
+forward 7
+forward 7
+up 6
+forward 3
+down 8
+forward 5
+forward 8
+down 7
+forward 6
+down 2
+forward 2
+forward 8
+down 4
+forward 5
+forward 7
+forward 5
+forward 8
+forward 9
+forward 6
+down 6
+up 7
+down 9
+forward 7
+forward 1
+up 2
+forward 8
+down 1
+up 9
+forward 7
+down 2
+up 2
+forward 5
+down 4
+down 3
+up 8
+up 6
+forward 3
+up 4
+forward 3
+forward 1
+forward 1
+up 9
+down 2
+down 9
+up 4
+forward 4
+forward 4
+forward 2
+forward 5
+forward 9
+forward 7
+up 4
+up 5
+down 5
+forward 9
+down 1
+forward 2
+down 6
+forward 9
+down 4
+down 2
+forward 2
+up 7
+forward 7
+forward 8
+up 9
+forward 3
+up 1
+down 5
+forward 5
+down 1
+up 5
+forward 4
+forward 5
+up 3
+down 4
+up 6
+up 1
+down 2
+forward 6
+down 8
+up 9
+down 7
+forward 9
+down 8
+forward 3
+forward 8
+down 1
+down 7
+forward 6
+up 6
+down 1
+down 5
+forward 6
+down 7
+down 2
+forward 6
+forward 2
+forward 8
+forward 7
+forward 2
+down 7
+up 2
+down 7
+forward 8
+forward 8
+forward 2
+forward 4
+down 1
+down 6
+down 1
+down 4
+down 4
+down 2
+down 7
+up 5
+up 5
+down 1
+forward 3
+up 1
+down 3
+forward 9
+forward 4
+forward 7
+down 4
+down 4
+down 2
+forward 2
+forward 1
+forward 9
+down 1
+down 4
+down 1
+forward 4
+up 8
+forward 3
+down 6
+forward 5
+forward 9
+forward 1
+up 8
+down 7
+down 8
+forward 4
+down 4
+up 5
+down 3
+forward 3
+down 6
+down 1
+down 9
+forward 8
+up 5
+down 7
+up 7
+forward 3
+up 5
+up 7
+down 4
+up 2
+down 2
+down 8
+up 6
+down 4
+up 1
+down 8
+down 4
+forward 7
+down 4
+up 3
+down 9
+forward 3
+up 4
+up 1
+up 5
+down 4
+forward 4
+forward 4
+down 2
+down 3
+down 4
+forward 2
+down 9
+down 9
+down 6
+forward 5
+forward 7
+down 3
+forward 2
+up 8
+down 6
+down 8
+down 2
+up 9
+down 1
+forward 8
+forward 1
+forward 8
+up 4
+up 1
+down 8
+up 2
+forward 5
+down 3
+forward 5
+forward 4
+forward 1
+down 9
+forward 2
+forward 5
+forward 4
+forward 3
+down 7
+up 9
+forward 7
+up 8
+forward 3
+forward 3
+down 5
+forward 7
+forward 5
+down 4
+forward 6
+down 6
+up 3
+down 3
+forward 7
+forward 8
+up 3
+up 8
+forward 8
+up 4
+forward 5
+up 4
+down 7
+forward 4
+down 8
+down 6
+forward 7
+down 4
+up 7
+down 6
+up 5
+down 2
+forward 7
+down 7
+up 3
+up 3
+down 3
+down 5
+forward 3
+forward 5
+forward 8
+down 3
+down 8
+forward 3
+down 1
+forward 4
+up 5
+forward 8
+up 1
+up 4
+down 4
+forward 1
+forward 6
+up 7
+up 1
+up 7
+down 5
+forward 8
+down 1
+forward 1
+forward 6
+up 9
+up 6
+down 4
+forward 5
+down 1
+forward 7
+down 8
+up 3
+down 9
+down 1
+up 7
+up 6
+forward 8
+down 9
+down 4
+forward 4
+up 7
+down 3
+forward 5
+forward 8
+up 5
+down 7
+up 2
+forward 3
+forward 3
+forward 4
+down 1
+forward 5
+forward 7
+up 7
+forward 7
+forward 1
+forward 3
+forward 9
+down 3
+forward 5
+down 9
+down 7
+down 4
+down 8
+up 3
+down 1
+up 5
+down 5
+forward 2
+down 6
+down 5
+forward 2
+forward 6
+down 6
+up 6
+down 8
+up 1
+forward 4
+forward 2
+forward 1
+up 1
+forward 5
+forward 3
+forward 7
+down 9
+forward 3
+down 9
+up 5
+down 7
+down 2
+down 3
+up 5
+up 3
+down 2
+forward 4
+forward 1
+down 3
+up 4
+down 8
+down 1
+forward 6
+down 3
+forward 9
+down 7
+down 3
+down 4
+down 5
+up 1
+forward 8
+forward 2
+up 3
+up 7
+up 1
+forward 3
+forward 9
+up 5
+forward 6
+down 8
+down 9
+down 5
+forward 6
+forward 3
+forward 8
+forward 7
+forward 9
+forward 2
+up 9
+forward 8
+down 2
+down 6
+down 9
+down 5
+forward 1
+down 7
+forward 2
+down 4
+down 1
+up 1
+down 2
+forward 5
+forward 8
+down 9
+up 6
+forward 8
+forward 3
+up 6
+up 2
+forward 8
+down 8
+up 1
+down 6
+down 2
+down 6
+forward 5
+forward 6
+down 4
+forward 1
+down 4
+up 7
+forward 4
+up 1
+forward 9
+forward 7
+up 3
+down 7
+down 4
+forward 3
+forward 8
+forward 6
+forward 6
+up 1
+up 2
+up 8
+down 7
+forward 8
+down 5
+forward 6
+down 1
+down 9
+down 2
+forward 6
+up 3
+down 5
+down 6
+forward 1
+forward 2
+down 3
+forward 8
+forward 1
+up 5
+down 8
+down 4
+up 9
+up 2
+forward 7
+forward 9
+up 8
+up 6
+forward 1
+down 7
+up 1
+down 3
+forward 2
+forward 3
+down 3
+down 2
+forward 3
+down 7
+forward 3
+forward 7
+forward 7
+down 8
+down 4
+forward 3
+forward 4
+down 7
+down 9
+down 4
+down 2
+forward 7
+up 8
+down 4
+down 3
+forward 9
+down 5
+up 6
+up 2
+down 5
+down 6
+forward 2
+forward 8
+down 1
+forward 6
+up 7
+down 6
+forward 4
+down 2
+down 5
+down 9
+forward 7
+up 4
+forward 9
+up 7
+down 4
+down 6
+up 9
+forward 1
+up 7
+down 5
+forward 3
+forward 3
+down 7
+down 1
+down 7
+down 7
+down 1
+forward 8
+forward 9
+forward 8
+down 9
+down 8
+down 5
+down 3
+forward 4
+forward 1
+down 1
+forward 1
+down 7
+forward 7
+forward 3
+down 8
+forward 3
+forward 9
+forward 8
+down 7
+forward 8
+down 2
+up 5
+forward 7
+forward 4
+down 2
+up 6
+up 8
+forward 7
+down 9
+up 3
+forward 4
+up 9
+up 5
+up 5
+up 6
+down 4
+down 5
+up 5
+forward 7
+forward 6
+down 4
+forward 5
+forward 4
+up 7
+forward 8
+down 2
+forward 1
+down 9
+down 8
+forward 7
+down 7
+down 1
+forward 9
+down 7
+forward 6
+down 2
+up 9
+forward 1
+up 9
+down 3
+up 9
+down 1
+forward 1
+down 1
+up 6
+down 8
+up 2
+down 3
+forward 1
+down 4
+up 5
+down 5
+down 4
+forward 5
+forward 4
+down 9
+up 7
+down 7
+forward 7
+forward 6
+forward 8
+down 8
+forward 8
+down 1
+down 1
+down 8
+down 2
+up 2
+up 1
+forward 5
+down 1
+up 5
+up 2
+down 6
+up 8
+forward 5
+down 8
+down 1
+up 5
+down 1
+forward 4
+down 6
+down 4
+forward 2
+forward 2
+down 1
+up 4
+up 8
+down 6
+down 2
+forward 5
+forward 8
+forward 7
+down 5
+down 7
+down 3
+forward 6
+down 3
+down 3
+forward 6
+forward 6
+forward 6
+up 7
+forward 1
+down 5
+down 2
+up 8
+forward 6
+down 7
+down 6
+forward 1
+up 5
+down 4
+up 9
+forward 3
+up 3
+forward 9
+forward 9
+forward 7
+forward 5
+down 9
+forward 1
+forward 6
+up 8
+down 7
+forward 9
+forward 5
+up 4
+down 8
+forward 8
+forward 4
+down 9
+up 2
+forward 5
+forward 8
+down 8
+down 9
+down 9
+forward 4
+forward 8
+down 5
+down 5
+forward 5
+forward 5
+up 9
+up 7
+forward 3
+up 4
+down 8
+up 6
+up 6
+down 4
+down 3
+forward 2
+forward 9
+down 4
+down 2
+forward 4
+up 9
+forward 1
+down 8
+down 9
+down 9
+down 3
+forward 1
+down 5
+up 9
+forward 6
+up 4
+forward 2
+forward 2
+forward 4
+down 9
+up 5
+up 1
+down 6
+forward 7
+down 8
+forward 4
+forward 9
+up 9
+up 4
+down 5
+down 3
+forward 2
+down 8
+down 6
+forward 3
+down 2
+forward 6
+up 2
+forward 6
+down 7
+up 4
+forward 1
+forward 4
+up 4
+forward 6
+forward 8
+down 7
+down 6
+up 7
+down 2
+down 4
+down 5
+forward 1
+up 4
+forward 8
+forward 6
+down 8
+up 5
+up 2
+up 9
+up 5
+forward 6
+down 4
+up 3
+down 8
+down 6
+down 2
+up 3
+up 5
+down 1
+forward 9
+up 8
+up 2
+down 3
+forward 6
+down 1
+forward 5
+down 3
+up 1
+up 2
+down 5
+down 7
+forward 8
+down 8
+up 9
+forward 3
+down 8
+down 8
+forward 1
+down 4
+down 4
+forward 3
+up 6
+down 3
+down 7
+down 7
+up 1
+forward 3
+forward 2