diff options
author | Lizzy Hunt <lizzy.hunt@usu.edu> | 2023-12-01 16:13:41 -0700 |
---|---|---|
committer | Lizzy Hunt <lizzy.hunt@usu.edu> | 2023-12-01 16:13:41 -0700 |
commit | 7fd957642236b5b64972b4e3f66fe48feecb735b (patch) | |
tree | 2d5d83f93cb90220a6ce6098780ef0b6e8bdf601 /aoc_2021/day-02/part_2.ts | |
parent | 888cd821acc7582255320e0ddbddd2495e505cd4 (diff) | |
download | aoc-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.ts | 42 |
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); +} |