Advent of Code 2020 完答した。

memo.sugyan.com

すぎゃーんの宣伝によって参加したけど、「楽しかった!が八割、辛かった!が二割」って感じでした。

Advent of Code とは

adventofcode.com

所謂アルゴリズム系の問題が25日間のアドベントカレンダー形式ででてくるので、ひたすら解く感じのものです。 ランキングとかを狙おうとしなければそこまで厳しいものではなく、既に解答した人が Reddit だったり youtube とかに解法を上げてたりするので、あまりにも厳しい時はそれを見て回答するのもありです。

最初のほうが簡単なので、『あれ?これなら普通に解けるんじゃね?』と思わせておいてからの Day 17 あたりから急に牙を剥いてくる感じがありましたね。。。

前半の問題

入力値を正規表現だったり、 parse したりして、 扱いやすい形に変換したら問題の半分は解けたような問題が多かったです。

Day12 の船を目的地まで操縦させるようなゲームとか。

Day 12 - Advent of Code 2020

Day11 の飛行機の空いてる座席を探させるやつとかも面白かったですね。

Day 11 - Advent of Code 2020

最初の関門は中国の剰余定理を使わないといけない Day13 でしたね。なんとか数学の知識が役に立ってよかったです。

Day 13 - Advent of Code 2020

後半の問題

前半に比べて後半は格段に難しくなりましたね。特に問題文を噛み砕いて理解するまでが時間かかりました。 難しかったのは Day17 でした。問題が読み解けなかったのと、何言ってんだろっていうのを理解しきれず、タイムアップでしたね。

Day 17 - Advent of Code 2020

答えを見てみるとなんのことはなく、最初から例題の読解よりも書かれている事をある程度愚直に実装したら解けそうでした。

Day20 の part2 も歯が立ちませんでしたね。これはジグソーパズルを解かなきゃいけないのですが、解き方はわかってもパズルのピースをぐるぐる回したり、デバッグしてたりしてたら時間が全く足らなくて、諦めました。

Day 20 - Advent of Code 2020

part1 がジグソーパズルそのものを解かなくてもよかったので安心してたら part2 で格段に難しくなったのがビックリしましたね。

個人的には Day19 の part1 が好きでしたね。正規表現に変換すればいいやと思いついた後は楽でした。part2は解法があってたのか自信がないですが、答えを導くことはできました。

Day 19 - Advent of Code 2020

まとめ

AoC は楽しいです。多分来年もやるだろうなーとは思います。次は Rust とかで挑戦してみようかなと。周りで流行ってるし、最近 すぎゃーんが作ってくれた slack workspace があるので、そこで聞きながらやってみようかなーと思います。