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

Advent of code

一旦12/31 12時時点で締めますと、★50個中48個獲得、ということで去年の12/31時点での41個より大幅に星が取れました(あと一問が心残り)。

今年は去年の反省を活かして、1日目をきっちり仕上げました(去年は一日目に開始時間を一時間間違えるという失態をしでかしてしまい、Private Leaderboardの順位を大きく落としてしまい、後半戦まで足を引っ張りました)。そのため、ずっとコンペティティブな順位を維持することができました。

大きく持ち越した問題は、12、17、20、21、23、24といった感じでしょうか(去年は、13、14、16、17、19、20、21、22と8問だったのを考えると今年は優秀です)。

それでは今年出た問題のまとめをしてみたいと思います。タイプは問題のタイプで、x、y座標を使う問題は「地図」、グラフ理論を使って解く問題は「グラフ」、それ以外は「ロジック」を組み立てる問題、としました(一部テトリスありますけど)。★獲得数は私が獲得した星の数で、Part1/2クリア人数は、Alteryx BaseAルールのPrivateLeaderBoard(Joshua Burkhow氏提供)のクリア人数を記載しています(これでなんとなく難易度わかりますよね・・・)。解答率は、Part2クリア人数÷Part1クリア人数で算出しています。最速クリアタイムは、一番はじめにPart2までクリアした人のタイムです。

ちなみに、以下のPart1クリア人数から右側の統計データは、Advent of CodeのAPIを使ってデータを取得しています(もちろんAlteryxで取得しています)。

記事リンク★獲得数タイプPart1クリア人数Part2クリア人数P2解答率最速クリアタイム
1日目★★ロジック11410995%11:19
2日目★★ロジック104104100%14:12
3日目★★地図898494%21:22
4日目★★ロジック978486%16:33
5日目★★ロジック744560%1:24:10
6日目★★ロジック7777100%11:17
7日目★★ロジック696594%30:57
8日目★★ロジック594169%1:05:04
9日目★★ロジック565394%18:17
10日目★★地図423480%1:41:12
11日目★★地図454395%30:09
12日目★★ロジック301963%1:12:18
13日目★★地図322784%1:15:45
14日目★★地図322681%37:43
15日目★★ロジック402972%1:19:53
16日目★★地図242083%47:56
17日目地図/グラフ141392%2:26:19
18日目★★地図261973%4:29:33
19日目★★ロジック221881%2:05:28
20日目★★ロジック10880%22:34:08
21日目★★地図19947%4:36:23
22日目★★3Dテトリス10880%7:43:04
23日目★★地図/グラフ11980%2:56:04
24日目★★高校数学19842%129:10:06
25日目グラフ9333%23:17

今年の傾向

今年は色々な問題が出ました。難易度も全体的に去年より高めな気がします。特徴的なのは、前半でもPart2で結構頭を悩ませる問題が去年より多かったでしょうか(一問目も結構Part2難しくて、Part1をやってからPart2で脱落している方もいらっしゃいます)。

Part1と2の完走率を見ると、去年は9問で100%となっていましたが(後半はそもそもやってる人が少ないですが)、今年はたったの2つ。Part1とPart2の難易度が乖離している問題が多かった気がします。

また、地図系の問題も今年は多かったです。去年は8問目でようやく地図の問題でしたが、今年は3問目からです。地図の問題は、だいたい反復マクロになるので、難易度があがる傾向にあります。

反復マクロも今年は4問目からお目見えしました(去年は5問目)。反復マクロを使った問題は、4、5、8、9、10、12、13、14、15、16、17、18、19、20、21、22、23、24です(72%なので、ほとんどじゃーーーん)。

今年は、Designer Cloudでいくつか解いてみました。つまり、反復マクロ不要の問題、行生成ツール不要の問題はDesigner Cloudで解くことが出来ます。要は、Designer Desktopに対して、しばりを入れて解くようなものです。つまり「反復マクロ」「バッチマクロ」「行生成」「複数行フォーミュラ」禁止、って感じです。そして存在しているツールもいくつか機能が省かれているものがあるので要注意です(関数が結構ばっさり行かれてます)。解けた問題は、1、2、6、7、11です。3も頑張れば解けるかもしれないですね。

個人的にヤバかった問題

12は4日悩みました。正規表現が複雑すぎて結果が出ていないのに気づくのに非常に時間がかかり、かなりの時間を消費しました。全然できねーってなってたので、去年の13を思い出しました。

17はまだ格闘しています。たまにこういうところで引っかかったりするんですよね・・・。

20は、、、これもかなり悩みました。反復マクロを作っては壊し、作っては壊し、全然進まない感じでした。こういう記録して保持しておかないといけないものが複数あるのは結構きついですね・・・しかもあとでそれを参照しないといけないというのは作りにくいです(マクロ内部のツールの多さ、複雑さが物語っています)。去年の22もマクロの複雑さという意味ではなかなかでした・・・。

21は、、、ヒント必須でした。Part2はまぁ、パターンを読む問題というのはなんとなく雰囲気でわかりますが、アイデアがなかなか出なかったです。Redditサイコー。

22は、3Dテトリス、、、崩すブロックを見つけるロジックが苦戦しました・・・。サンプルにない隠れパターンを見つけるのが大変でした・・・。

24、、、もヒント必須でした。Part2は連立方程式がんばって解いたのですが、数が大きすぎてNGでした。結局Reddit頼み・・・。

とはいえ、難易度の高い問題のさばき方とRedditのヒントで比較的食らいついていった感じです。ただ、少しトリックを必要とする問題が多かった気もします(8、14、20、21、24など)。LCMなのか、パターンを発見する問題なのか、見極めも必要です。

まとめ

  • 今年も難しかった!
  • ですが、後半はたまにオアシス問題もあったのが印象的です。
  • パターン読んだりする問題はめんどくさいですね、、、
  • 25はちゃんとしたBaseA(目視とかなしで)で解決策を探りたいです。
  • 一部の問題用に汎用マクロ作る?
  • とはいえ、今年も楽しませてもらいました。来年は年内に片付けるようにがんばりたいです。

コメント

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