summaryrefslogtreecommitdiff
path: root/aoc_2021/day-02/part_2.ts
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 /aoc_2021/day-02/part_2.ts
parent888cd821acc7582255320e0ddbddd2495e505cd4 (diff)
downloadaoc-7fd957642236b5b64972b4e3f66fe48feecb735b.tar.gz
aoc-7fd957642236b5b64972b4e3f66fe48feecb735b.zip
final test for the setup. aoc 2021 / 2
Diffstat (limited to 'aoc_2021/day-02/part_2.ts')
-rw-r--r--aoc_2021/day-02/part_2.ts42
1 files changed, 42 insertions, 0 deletions
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);
+}