From 0f99950e2687a0381e791efcbc7524a0734266a8 Mon Sep 17 00:00:00 2001 From: Kevin Hughes Date: Tue, 3 Dec 2024 13:22:20 +0000 Subject: [PATCH] Day Three --- day03.livemd | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 day03.livemd diff --git a/day03.livemd b/day03.livemd new file mode 100644 index 0000000..7d79a52 --- /dev/null +++ b/day03.livemd @@ -0,0 +1,45 @@ +# Day03 + +```elixir +Mix.install([ + {:kino, "~> 0.14.2"}, +]) +``` + +## Run Me + +[![Run in Livebook](https://livebook.dev/badge/v1/blue.svg)](https://livebook.dev/run?url=https%3A%2F%2Fgit.kev.pub%2Fkev%2Faoc2024%2Fraw%2Fbranch%2Fmain%2Fday01.livemd) + +## Input + +```elixir +input = Kino.Input.textarea("Input") +``` + +## Part One + +```elixir +defmodule PartOne do + def run(input) do + Regex.scan(~r/mul\((\d+),(\d+)\)/, input) + |> Enum.map(fn [_, a, b] -> String.to_integer(a) * String.to_integer(b) end) + |> Enum.sum + end +end + +input +|> Kino.Input.read +|> PartOne.run +``` + +## Part Two + +```elixir +input +|> Kino.Input.read +|> String.split("do()") +|> Enum.map(fn s -> s |> String.split("don't()") |> hd end) +|> Enum.map(&PartOne.run/1) +|> List.flatten +|> Enum.sum +```