Advent of Code 2025をAlteryxでやってみたまとめ

Advent of code

今年の戦績

ルールが今年変わり、12日で終了となりました!ということで、12/12で★24達成です!

去年7日目のPart1でトップ取りましたが、今年は同じ日のPart2でトップです。なんという偶然(笑

今年のハイライトはやはり10日目でしょうか・・・。最適化ツールがないと解けてないですね・・・。ただ、Pure Base Aで解けないか、というのはちょっと興味はあります(けど、非常に難易度高そうですね)。

あとは、最終日の叙述トリック。

全体的にはめちゃくちゃ手の込んだ問題は以前より減った印象です。まぁ、解きやすくなった、という言い方はできるかもしれませんが、若干歯ごたえがたりない感はあります・・・。

ちなみに、今年はBaseAプライベートリーダーボードでは、暫定4位でフィニッシュとなりました。おそらく最終的な順位は実質5位かな、と思います。

今年の学び

個人的にはDay10でたくさんの問題を最適化ツールでバッチ処理する、というのは初の試みだったので、これは結構やっていて面白かったです。LLMにCSVでデータを送信する際のやり方(考え方)を流用し、データをカンマ区切り&改行区切りで1セルに圧縮し、バッチマクロ内部で展開するというやり方を行いました。

Day5の重複除去は非常に興味深い内容でした。過去のAoCでもこの重複の処理というのが出てきたように思いますが、実際の業務の中でもこの重複除去は使えるのではないかと思います。これは後ほど一般化したものをブログで発表したいと思います(すでにブログ公開はスケジュール予約済みです)。今回は重複を削除する方向でしたが、重複部分の抽出、というのもやってみたいテーマですね。ちなみに、コミュニティでいろんな人のワークフローを見ましたが、汎用的に動くものと、今回のデータではうまく動くけど、対応できないパターンがあるものなどもありました。ちなみに、自分がAoCを解くのに使ったアルゴリズムは見事に対応できないパターンがありました・・・。ブログで公開するのはどのパターンでもいける「はず」です。

Day8のグループ作成ツールが使える、というのも面白いテーマでした。単にグラフに書ける場合に、同じグループに属するかどうか、の判断には非常に役立つツールです。ただ、同じグループに属するかどうかしか判断できないのでそれ以上の高度なことが必要な場合は自力でさらなるアルゴリズムが必要になります(つまり、統計的な情報は得やすいのですが、接続の順番が必要な場合などはさらなる追加の作業が必要になります)。

Day9は、結局Part2を計算だけで求めていないのですが、例えばPythonで解くならどうすればいいのか、というのは少し興味深い課題です。

Day9、11、12は実際の難易度と見せかけの難易度が大きく異なる問題です。しっかりしたアルゴリズムが必要になるわけではなく、実際のデータは単純だった、ということです。AIだましのテクニックのひとつなのかもしれませんが、よくデータを確認しましょう、ということでしょうね・・・。この中でも11は少し傾向が違いますが、データ爆発の処理をうまくやればあっという間に答えが出てしまう、というのは面白いトリックでした(過去にもありましたが、これだけ単純化されるパターンはなかったように思います)。

以下、問題カテゴリで分けてみました。

ロジック系:1、2、3、5、6、10、12

マップ系:4、7、9

グラフ系:8、11

今年の全体的な傾向

さて、Base Aプライベートリーダーボードの統計データを見てみましょう。

今年の一番難易度が高いのはやはりDay10なのはもう見てわかりますね。最速クリアが圧倒的に時間がかかっている唯一のものです。そして、Day10は最適化ツールがほぼ必須です。これなしの回答にたどり着いた人はほとんどいませんが、難易度から考えると妥当でしょうか・・・。

P2への到達率を見ると、一番簡単だったのはDay2ということになります。

本ブログ内のリンク

1日目2日目3日目4日目5日目6日目
7日目8日目9日目10日目11日目12日目

総括

今年は12日で短かったのと、難易度のおかげできっちり12日で終わることができました。

逆に、意外と今年は難易度のせいか盛り上がりに欠けた気もします。とはいえ、何事にも良い塩梅というものがあるわけで・・・。

ただ、このAoCは問題文を読んで単純化すると難易度が結構下がるところがあって、問題文込みでの難易度になっていると感じます。やらなければならないことを問題文から抽出すると、思ったより簡単じゃん、って実はなっちゃいます。例えば社内教育でこれを試す時は、、、英語が苦手な場合、Chromeの日本語訳機能を使うとおかしくなることが多いので、少し悩ましさがありますね。

今年もワッツアップやコミュニティで一緒に絡んでくれたグローバルのコミュニティのメンバー、東京ユーザーグループ、そして最大のスペシャルサンクスはこれを企画してくれたJoshua Burkhowに贈りたいと思います。

また来年会いましょう!

コメント

タイトルとURLをコピーしました