Day 02

import Solution from "./solution.ts";

const transform = (val: string) => {
  const [i, n] = val.split(" ");
  return { i, n: Number(n) };
};

const task = new Solution(
  (input) => {
    const { h, d } = input.reduce(
      (p, c) => {
        switch (c.i) {
          case "forward":
            return { ...p, h: p.h + c.n };
          case "down":
            return { ...p, d: p.d + c.n };
          case "up":
            return { ...p, d: p.d - c.n };
          default:
            throw new Error(`Unknown action ${c.i}`);
        }
      },
      { h: 0, d: 0 }
    );
    return h * d;
  },
  (input) => {
    const { h, d } = input.reduce(
      (p, c) => {
        switch (c.i) {
          case "forward":
            return { ...p, h: p.h + c.n, d: p.d + p.a * c.n };
          case "down":
            return { ...p, a: p.a + c.n };
          case "up":
            return { ...p, a: p.a - c.n };
          default:
            throw new Error(`Unknown action ${c.i}`);
        }
      },
      { h: 0, d: 0, a: 0 }
    );
    return h * d;
  },
  {
    transform,
  }
);
task.expect(150, 900);

export default task;

Last edited 04. April 2025 13:29