this repo has no description

2024 day 02

hauleth.dev b665d6b1 5d72a80e

verified
Changed files
+57 -1
2024
+1 -1
2024/day01.livemd
···
|> Enum.sum()
```
-
<!-- livebook:{"offset":944,"stamp":{"token":"XCP.cgdw7FXwOgseZzd1bPx-K7u1sqKwy4Z3R6v2SL8ckKB2N9XbXUOJnZPIVWSXHdfF_mjc33PW3xJbhrK4nUviLvUBLacAi6DmOdDm1gNBg9OXYHILfpL6UV-qRWtw8UTbeog","version":2}} -->
···
|> Enum.sum()
```
+
<!-- livebook:{"offset":944,"stamp":{"token":"XCP.kAiLPYFFjB5gittWtRe2qvQNl0eypXdV8-SA_CjsvAhzJAKbzccMdisxMjrJQ8vBacfLZV0B8GUs0xEmkXWg8-XngROm0ts7gOF-jJzV479UO2mEuG9Kxiw_9tiicWt0mN8","version":2}} -->
+56
2024/day02.livemd
···
···
+
# Day 02
+
+
```elixir
+
Mix.install([:kino_aoc])
+
```
+
+
## Section
+
+
<!-- livebook:{"attrs":"eyJhc3NpZ25fdG8iOiJwdXp6bGVfaW5wdXQiLCJkYXkiOiIyIiwic2Vzc2lvbl9zZWNyZXQiOiJBRFZFTlRfT0ZfQ09ERV9TRVNTSU9OIiwieWVhciI6IjIwMjQifQ","chunks":null,"kind":"Elixir.KinoAOC.HelperCell","livebook_object":"smart_cell"} -->
+
+
```elixir
+
{:ok, puzzle_input} =
+
KinoAOC.download_puzzle("2024", "2", System.fetch_env!("LB_ADVENT_OF_CODE_SESSION"))
+
```
+
+
```elixir
+
inputs =
+
puzzle_input
+
|> String.split("\n", trim: true)
+
|> Enum.map(fn row ->
+
row
+
|> String.split(" ", trim: true)
+
|> Enum.map(&String.to_integer/1)
+
end)
+
```
+
+
```elixir
+
defmodule Day02 do
+
def correct?([a, b | _] = input) do
+
cmp = if a > b, do: &>/2, else: &</2
+
valid? = fn [c, d] -> abs(c - d) in 1..3 and cmp.(c, d) end
+
+
input
+
|> Enum.chunk_every(2, 1, :discard)
+
|> Enum.all?(valid?)
+
end
+
end
+
```
+
+
## Part 1
+
+
```elixir
+
Enum.count(inputs, &Day02.correct?/1)
+
```
+
+
## Part 2
+
+
```elixir
+
Enum.count(inputs, fn row ->
+
Enum.any?(0..length(row), fn idx ->
+
row |> List.delete_at(idx) |> Day02.correct?()
+
end)
+
end)
+
```
+
+
<!-- livebook:{"offset":1095,"stamp":{"token":"XCP.EDLheuV1bFdj8dcA62THFYEnpGMMQhndPyDclGgiuluufI8nGaZSSck2Zkh1QsI2YzHSIIw7X4Z8X4n_sgLE0sPJr4ahqOV5-G9t1bfxRG4kZgo2wsY4xf7SvIl1diXFy1k","version":2}} -->