世界を動かす技術を、日本語で。

「Advent of Code 2025」:初めてパズルの数が25から12に減少

概要

Eric WastlAdvent of Code の制作者であり、様々なプログラミングパズルを提供 Advent of Code は誰でも参加可能な アドベントカレンダー形式 のプログラミングイベント パズルは 多様な用途 (面接対策・トレーニング・競争など)で活用可能 参加に高度な知識や高性能PCは不要 で、初心者にも優しい設計 公式サイトや FAQ では参加方法・ヒント・ルールなどが詳しく案内されている

Advent of Codeとは

  • Advent of Code :毎年12月に開催されるプログラミングパズルイベント
  • Eric Wastl が制作・運営
  • パズルは スキルレベルを問わず 誰でも挑戦可能
  • 任意のプログラミング言語 で解答可能
  • 面接対策、企業研修、大学講義、練習問題、スピード競争、仲間同士の挑戦 など多様な活用法
  • コンピュータサイエンスの専門知識不要、少しのプログラミング経験と問題解決力で参加可能
  • 10年前のPCでも解ける設計、15秒以内で解答が出る問題設定
  • Bluesky、Mastodon、GitHub でも活動

参加・サポート方法

  • Advent of Code への直接支援は AoC++ 経由
  • 間接的な支援方法として 他者への紹介や共有
  • パズルは毎日0時(EST/UTC-5) に公開
  • プライベートリーダーボード で仲間と競争可能

一般的なヒント

  • 例題で動作確認、同じ答えが出るかチェック
  • 説明文の再読、誤解やプログラムの挙動確認
  • 自作テストケース で手計算とプログラムの結果を比較
  • 入力データの完全性確認
  • 友人やサブレディットで相談、時間をおいて再挑戦も有効
  • コードブロック選択 はトリプルクリック(JavaScript有効時)

よくある質問(FAQ)

  • 認証方式 :OAuthを利用し、外部サービス経由で本人確認
    • RedditやGitHub などの公開情報のみ取得
  • パズルの難易度 :日ごとや内容によって変動、個人のスキルセットに依存
  • 公開時刻 :運営者の都合で 0時(EST/UTC-5) 固定
  • 高コントラストモード :Firefox標準対応、他ブラウザも切替可能
  • パズル案の投稿不可 :法的な理由でアイデア募集は一切不可
  • バグ報告 :公開後1時間で多くの解答が集まり、バグは稀。まずは subreddit で相談
  • 解答の速さ :スピード重視も自由だが、自分に合うスタイルで参加推奨
  • イベント日数変更 :運営負担軽減のため、10年目で日数短縮
  • グローバルリーダーボード廃止 :過度な競争・トラブル防止のため
  • プライベートリーダーボードのルール :利用ツールや解答時間など、各リーダーボードで独自設定
  • AI利用について :AIによる自動解答は推奨せず、人間の学習や楽しみのための設計
  • 転載・再配布禁止 :Advent of Codeのパズル文や入力データのコピー・再配布は禁止
    • ソースコードや議論、教材等での参照・リンクは許可

クレジット・法的情報

  • パズル・コード・デザイン :Eric Wastl
  • ベータテスター :Tim Giannetti、Ben Lucek、JP Burke、Aneurysm9、Andrew Skalski
  • コミュニティマネージャー :Danielle Lucek、Aneurysm9
  • プレイヤー :あなた
  • 商標・著作権 :Advent of Codeは米国登録商標、全デザイン・文言等はEric Wastlの所有物
  • 利用許諾 :パズルへのリンク・参照は自由、解答実装の著作権は参加者に帰属

Hackerたちの意見

FAQからの引用: 「なぜイベントごとの日数が変わったの?毎年『Advent of Code』を運営するのにすごく時間がかかるし、パズルを作るのがその大半を占めてるんだ。10年間(!)も同じスケジュールを続けてきたから、変化が必要だったんだ。パズルは12月1日に始まるから、日付の番号が意味を持つようになってる(1日目 = 12月1日)、毎日パズルが出るよ(12月中旬まで)。」

参加をやめた理由の一つは、12月の後半が近づくにつれてパズルを解くための自由な時間がどんどん減っていったから。だから、私にとってもこれは歓迎すべき変化だよ。今年もまた挑戦してみるつもり。

同意だね。パズルのことで頭がいっぱいになって、家族と過ごす時間が減ってたから。去年は、月の中頃に難易度をピークにして、25日まで少し下げるのもいいんじゃないかと思ってた。でも、早めに終わらせる方がいいと思う。

パズルがどんどん難しくなって、コーヒーを飲みながら解くのができなくなってきたのも辛いよね(でも、できる人もいるみたいだけど)。

同じく、AoCが大好きだけど、時間が全然ないんだ(12月は仕事が一番忙しい時期だから)。でも、2日に1個パズルが出るといいなと思ってた。そうすれば、月全体に広がるし、アドベントカレンダーのコンセプトにも合うと思う。実際、過去の年はパズルがいつも2部構成だったから、その形式が残っていれば、実質的には24個のパズルがあることになるよね。

一度「アドベント・オブ・ペアレンティング」をやろうって半分真面目に考えたことがあったんだ。月に1つの問題を出して、クリスマスの後から始めるって感じで。つまり、遅れすぎて新年からスタートして、月に1つの問題を解く時間があるってこと。でも、結局やる時間がなかったんだ。子どもたちがね…

これだ。俺が今まで達成した中で最高なのは、1年で15個のパズルくらいかな、欠けた日もあったけど。しかもその時は、バイトコードインタープリタを実装する過程で少しずつ進んでたから、1日あたりの作業量はそんなに多くなかった。最初の1日を逃すと、追いつくのは無駄な努力になっちゃう。パズルが1つ解くのに4時間以上かかるようになるし、1日に複数解こうとしたらフルタイムのコミットメントが必要になる。大体、アドベントオブコードは7日目から10日目あたりで急に脱落しちゃうことが多いし、俺だけじゃないと思う。これは歓迎すべき変化だね。

俺にとっては、いつも時間はあったけど、能力がなかっただけ。2017年には全部解けたけど、他の年には全然近づけなかった。

「クリエイターが、ほとんどの人が中間地点で脱落するっていうデータを持ってても驚かないな、まさにその理由で。」

こういう変化があると、最初は悲しんで、どうにかして今まで通りにできないか考えちゃうんだ。「パズルを個人じゃなくてグループで作ったら、みんなで分担できるんじゃない?」って思ったり、「LLMが手伝えるんじゃない?」とも考えた。でも、思い出さなきゃいけないのは、『Advent of Code』は25個のパズルがあることが目的じゃないってこと。だから、量を維持することが全てじゃないんだよね。これがないことに感謝しないと!過去に500以上のチャレンジをプレゼントとしてもらったこと、すごくラッキーだよね!今年も12個の新しいギフトを楽しみにできること、感謝だね!

今年は人間が解けるけどLLMには解けないパズルをデザインしようとしてるんだ。一つ考えたけど、結構大変だった!メッセージクラッキングをテーマにしてるよ。

それに関して、自分に思い出させる必要があったんだ:アドベント・オブ・コードは25個のパズルがあることじゃないんだよね。本当に?イベントの名前は「アドベント・オブ・コード」だよ。25個のパズルがあるのは、明らかにその最も重要な要素だよ。23〜29個のパズルでもいいし、5個でもいいけど、12個だとその名前は何を指してるの?

嫌なことを言うようだけど、名前には意味があるんだ。それがそもそも名前を持つ理由だよ。> アドベント・オブ・コードは25個のパズルがあることじゃないから、量を維持することが全く関係ないんだよね。これはアドベント・オブ・コードなんだ。「宗教的・商業的な伝統的な意味合いが全くないランダムな年末イベント」ではないんだ。25は名前に含まれてるんだから。それが全てのポイントだよ :)。

リーダーボードもなくなったみたいだね。残念だけど、ここ2年の流れを考えると予想通りだよ。でも、全体をキャンセルするんじゃないかと心配してたから、これはまだ良いニュースだね!

ここ2年の流れから考えると予測可能だったね。QRD?AIだったの?

リーダーボードは、AoCが始まって以来、同じ予測可能な議論を引き起こしてきた。繰り返されるテーマ: - パズルがほとんどのヨーロッパで真夜中に公開されるから、もっといいシステム、例えばスコアリングのようなものがあればいいのに。 - 「楽しんでね、競争じゃないから」って言ってるページが多いのに、レースで誰が先にいるかを示すリーダーボードページが目立つのは変だよね。 - 基本的に1年目から、パズルの入力をできるだけ早く読み込もうとして、10msごとにポーリングしてサーバーに過剰な負荷をかけている人たちがいる。 - AIが許可されるかどうかは、実際には強制できないから、結果のない超有毒な議論になっちゃう。

「これがなくなるの寂しいな。問題をどれだけ早く解析して、エッジケースを考えながら解決策を見つけて、実際に書いて実行するのが楽しいんだよね。リーダーボードではあんまり上位に行ったことないけど、12月に早起きして挑戦するのが好きだった。大体1000位くらい、たまに100位くらいには入ったけど。でも、その決定も理解できる。楽しかったけど、今年はAoCで他の楽しみ方を見つけるよ!」

明るい話題としては、これで12月のスケジュールがもっとリラックスできるようになるね。リーダーボードには競争しないけど、パズルが公開された日に解くようにしてるんだ(アドベントカレンダーの精神を保つためにね)。でも、後半のパズルは解くのにかなり時間がかかることがあって、通常のスケジュールと合わせるのが難しいし、ちょっとストレスになることもある(でも、祝日特有の「ストレス」だから、まだマシだけどね)。

これ、私の経験に合ってるな。今年のアドベント・オブ・コードを「ドキドキ」しながら待ってたよ。去年は精神を保ってクリスマスの日までに全部終わらせたけど(家族や他の用事で日がずれちゃったこともあったけど)、それも月の最後の1週間くらいは比較的自由だったからできたんだ。普段は月の前半のパズルを朝食前や昼休み、夜に解けてたけど、難易度が上がると後半のパズルは本当に一日を食いつぶすことがあるよね。特に解決策で悪い道に進んじゃったら。

もしパズルの数を半分に減らしたなら、毎日新しいパズルを出すのはどう?それならもっと理にかなってると思う。アドベント・オブ・コードはクリスマスまで続くし、パズルごとにもっと時間が取れるからね。パズルが公開された翌日にパート2を解放するのもいいかも。そうすれば毎日新しいものがあるし。以前参加してみたことがあるけど、1日1つのパズルは時間がかかりすぎて途中で諦めちゃった。2日に1つのパズルだったら、もっと管理しやすいと思う。

もし12日間毎日公開されたら、2日に1つのパズルが解けるよね。もし2日に1つだったら、12日連続でやりたい人はできなくなっちゃう。

リーダーボードもなくなったし!これらはポジティブな変化に見えるね。2倍長いイベントが2倍楽しいわけじゃないし、参加するのが2倍満足できるわけでもないから。ここ数年スキップしてたけど、今年はまた挑戦してみようかなって気がする。

すごい!いつもの5日から7日間の出力が、今はずっと有能に見えるようになるね。ああ、まあ、完成するって感じ。実際に賢くなるわけじゃないけど、時間を上手く使っている人の努力が見えるような心地よい光を放つんだ。改善?いや。でも、改善の錯覚?ほぼノーベル賞ものだね。もうこの変化を楽しんでるよ。

どう解釈すればいいのかわからないけど、時間を上手く使っているアヒルたちがフォトジェニックに並んでいるというイメージがすごく好き。俺のスタートレックテーマの、すごくスローな日曜日の朝にはぴったりだね。

グローバルリーダーボードの側面を楽しんできたからちょっと悲しいけど、もちろん俺の2つ目の反応は、一歩引いてこの1人の男が何年も私たちに与えてくれた喜びを感謝することだね。彼は最初から、グローバルリーダーボードが目的じゃないって明言してたし、ここ数年のAIが全てを台無しにしてる。良いことには終わりがあるし、俺たちが楽しんできた良い時間や、私たちにそれを与えてくれた1人の人のボランティア活動に感謝しなきゃ。

タイムゾーンに基づくと、実際にはグローバルじゃなかったね。

「パズルの「パート2」が別の日になってたら、もっと自然に感じたかもなぁ。12日分のパズルはそのままだけど、24日に分けて、最後の日にはリラックスできるようにちょっと簡単なパズルを1つ追加するとか。」

「私も同じこと考えてた!交互にパズルがあったら最高だよね。でも、主催者が素晴らしい仕事をしてくれるって信じてるし、どちらにしても楽しいと思うよ。」

「パート1とパート2の間の24時間を、パート2がどうなるか予測したり、解決策を一般化してパート2が何を投げてきても対応できるか考える時間に使えるかもね。例えば、ランタンフィッシュ(https://adventofcode.com/2021/day/6)のやつは、ただ数字が大きくなるだけだと思うから、パート1を反復的に解決すれば、パート2を早く解くための予測ができるかもしれない。」