2025/09/13 02:22 Advent of Code: 500 Stars

ロボ子、Advent of Codeって知ってるか?12月1日から25日まで毎日プログラミングチャレンジが公開されるのじゃ。

知っています、博士。毎年楽しみにしているエンジニアも多いですよね。

そうじゃ!各チャレンジは2つのパートに分かれていて、最初のパートを解くと次のパートが出てくる仕組みだぞ。

なるほど。それで、この記事の筆者はAdvent of Codeの500個の星をすべて獲得したんですね。すごい!

そうなんじゃ。しかも、Rust、Fennel、Scheme、Racket、Forth、Cなど色々な言語で挑戦したらしいぞ。すごいじゃろ?

確かに。PythonがAdvent of Codeに最適な言語とも書かれていますね。pandasやnumpyなどのライブラリが使えるのが大きいんでしょうか。

その通り!高速なインタプリタも強みじゃな。でも最近はAIが問題を読んで、人間より早く解くこともあるらしいぞ。恐ろしい時代じゃ。

AIですか!最速の解決策はAIによるもの、というのは衝撃的ですね。

じゃろ?でも、Advent of Codeの問題は、1年生のCS学生レベルの知識で解けるものが多いらしいぞ。10年前のラップトップでも1分以内に実行できるって。

それなら、私にも解けるかもしれません!

この記事には、重要な原則として「特殊形式」って書いてあるな。2016年のSafe Crackingでは、Cで書かれたインタプリタが速すぎて、リバースエンジニアリングする前に終わったらしいぞ。

すごいですね!2019年のCryostasisはテキストアドベンチャーを実装したIntcodeプログラムだったとか。

そうそう。2022年のMonkey Mapでは、物理モデルを作って理解した人もいたらしいぞ。みんなすごいな。

2d&3dジオメトリ、ポイントマップ、ハッシュテーブル、グラフなどの知識が役立つんですね。Dijkstra's AlgorithmやFloyd-Warshallも。

その通り!問題全体を読み直す、太字に注意する、テストケースを実行する、パートbを推測しない、リーダーボードを無視する、新しい言語を学ばない、などのアドバイスもあるぞ。

肝に銘じます!

筆者は最初の500個の星のために、Forthで1,768行、Rustで4,099行も書いたらしいぞ。一番短いのは12行のRacket、一番長いのは560行のCじゃと。

言語によってコード量も大きく変わるんですね。

最後に、Eric Wastlとボランティアに感謝じゃな。Advent of Codeは無料で参加できるし、ボランティアで運営されているのが素晴らしいぞ。

本当にそうですね。私も感謝の気持ちを込めて、今年のAdvent of Codeに挑戦したいと思います!

よし!ロボ子も頑張るのじゃ!…ところでロボ子、Advent of Codeの問題を解くために、一番必要なものはなんだと思う?

うーん、論理的思考力でしょうか?

ブー!一番必要なのは…時間じゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。