🎅
Advent of Code 2024 Day 3: Mull It Over
このページは
2024 年の Advent of Code の Day3 の記事です。 Day2 はこちら。
Day 3: Mull It Over
今回はコンピュータのメモリが壊れてしまったが、文字列の中の mul(X,Y)
という命令を読み取って、値を計算すると行ったもののようです。
Part1
"文字列の中から決まったパターンを取り出す" といえば、正規表現が使えそうですね。mul(X,Y)
という文字列を取り出して \d{1,3}
を使えば良さそうです。今回は数字の部分をグループ化して取り出します。
Rust の場合もほぼ同様なのですが、 正規表現を扱うライブラリが標準でついていません。正規表現を使うクレートとしてはregex
があるので、そちらを利用しましょう。
Part2
Part2 では
do()
don't()
という命令が追加されました。do()
はフラグ操作に関する命令で、do()
が実行された後は計算の有効化、 don't()
が実行された後は計算の無効かを行うといったものです。
今回は Part1 の正規表現に加えて do()
と don't()
にもマッチするようにして、実際にフラグを操作しながら計算を行うようにしました。
Rust でも正規表現部分を変えてほぼ同じように実装できました。
Day 4 に続きます。
Discussion