Day Three

This commit is contained in:
Kevin Hughes 2024-12-03 13:22:20 +00:00
parent 10eb1838c7
commit 0f99950e26
Signed by: kev
GPG Key ID: 4F56A079AF7A66A6
1 changed files with 45 additions and 0 deletions

45
day03.livemd Normal file
View File

@ -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
```