Advent of Code 2020 完答した。
leetcode も Tシャツとキーホルダーがもらえるポイントまで到達した。
— Yosuke Furukawa (@yosuke_furukawa) December 25, 2020
Advent of Code 2020 も終わった。大変だった。 pic.twitter.com/FLX7Eno50I
すぎゃーんの宣伝によって参加したけど、「楽しかった!が八割、辛かった!が二割」って感じでした。
Advent of Code とは
所謂アルゴリズム系の問題が25日間のアドベントカレンダー形式ででてくるので、ひたすら解く感じのものです。 ランキングとかを狙おうとしなければそこまで厳しいものではなく、既に解答した人が Reddit だったり youtube とかに解法を上げてたりするので、あまりにも厳しい時はそれを見て回答するのもありです。
最初のほうが簡単なので、『あれ?これなら普通に解けるんじゃね?』と思わせておいてからの Day 17 あたりから急に牙を剥いてくる感じがありましたね。。。
前半の問題
入力値を正規表現だったり、 parse したりして、 扱いやすい形に変換したら問題の半分は解けたような問題が多かったです。
Day12 の船を目的地まで操縦させるようなゲームとか。
Day11 の飛行機の空いてる座席を探させるやつとかも面白かったですね。
最初の関門は中国の剰余定理を使わないといけない Day13 でしたね。なんとか数学の知識が役に立ってよかったです。
後半の問題
前半に比べて後半は格段に難しくなりましたね。特に問題文を噛み砕いて理解するまでが時間かかりました。 難しかったのは Day17 でした。問題が読み解けなかったのと、何言ってんだろっていうのを理解しきれず、タイムアップでしたね。
答えを見てみるとなんのことはなく、最初から例題の読解よりも書かれている事をある程度愚直に実装したら解けそうでした。
Day20 の part2 も歯が立ちませんでしたね。これはジグソーパズルを解かなきゃいけないのですが、解き方はわかってもパズルのピースをぐるぐる回したり、デバッグしてたりしてたら時間が全く足らなくて、諦めました。
part1 がジグソーパズルそのものを解かなくてもよかったので安心してたら part2 で格段に難しくなったのがビックリしましたね。
個人的には Day19 の part1 が好きでしたね。正規表現に変換すればいいやと思いついた後は楽でした。part2は解法があってたのか自信がないですが、答えを導くことはできました。
まとめ
AoC は楽しいです。多分来年もやるだろうなーとは思います。次は Rust とかで挑戦してみようかなと。周りで流行ってるし、最近 すぎゃーんが作ってくれた slack workspace があるので、そこで聞きながらやってみようかなーと思います。
AoCとかLeetCodeとかでもうちょっと幅広く色んな人と議論したり相談したりできる場所があるといいな、と思って作ってみた。フォロワーでそういうの興味あるおじさん居れば是非〜https://t.co/lZWm8GUlGG
— すぎゃーん💯 (@sugyan) December 26, 2020