🎅

Advent of Code 2024 Day 11: Plutonian Pebbles

2024/12/29に公開

このページは

2024 年の Advent of Code の Day11 の記事です。 Day10 はこちら。

https://zenn.dev/yasuharu519/articles/a89527a2d3dd60

Day 11: Plutonian Pebbles

今回は物理法則を超越した石についての問題です。数字が掘られた石が直列に並んでいます。不思議なのは、瞬きする度に石が二つに分裂したり、掘られている数字が変化するというところです。

どうやらそれぞれの石は、瞬きする度に以下の法則に従って変化しているようです

  • 石に掘られた数字が 0 の場合は 1 に変化する
  • 石に彫られた数字の桁数が偶数の場合は、石は二つに分裂する。左にある石は元の数字の上位半分、右にある石は元の数字の下位半分を持つ
  • そのほかの場合は、石の数字が 2024 倍される

Part1 & Part2

今回の問題は Part1 では、25 回瞬きした後の結果、Part2 では 75 回瞬きした結果を求めよというものです。そのため、同じアルゴリズムで、瞬きの回数を変化させるだけで良さそうです。

ルールをよく見てみると、分裂以外のルールについては数が変わっていくだけです。また石の分裂についても、石が分裂した結果も他の石の計算に影響を与えません。

そのため、ある石からスタートして、再帰的に石の数を計算していくだけで、瞬きの回数が変わっても問題なく計算が出来そうです。

https://github.com/yasuharu519/advent-of-code-2024/blob/main/python/day11/part1.py#L7-L20

Day 12 に続きます。

https://zenn.dev/yasuharu519/articles/cc3311c131327b

Discussion