はじめに
昨年、 Advent of code 2023 を Livebook で楽しみました
今年も 12 月に開始されるので、その前に過去回の 2015 を解いて行きます
実装したノートブックはこちら
問題はこちら
セットアップ
Livebook のセットアップセルで KinoAOC をインストールします
Mix.install([
{:kino_aoc, "~> 0.1"}
])
実は KinoAOC に問題があったため、 PR を出して修正しました
https://qiita.com/RyoWakabayashi/private/9a92d118ce7eba9f1cc3
入力の取得
KinoAOC をインストールすると、 "Advent of Code Helper" というスマートセルが
使えるようになります
"Advent of Code Helper" のセルを追加し、年、日、認証用のSESSION、入力を格納する変数名を指定します
私の答え
私の答えです。
折りたたんでおきます。
▶を押して開いてください。
回答
(
のときに上昇、 )
のときに下降し、最終的に何階にいるのか、という問題です
最終的な階数は「(
の数 - )
の数」です
「)
の数」は「全文字数 - (
の数」なので、最終的な階数は「(
の数 - (全文字数 - (
の数) = 2 * (
の数 - 全文字数」となります
puzzle_input
|> String.codepoints()
|> then(fn directions ->
2 * Enum.count(directions, fn d -> d == "(" end) - length(directions)
end)
まとめ
Day 1 Part 1 なので単純ですね
Part 2 はこちら