Advent of CodeをAlteryxでやってみる2025_7日目

Advent of code

Advent of Codeをデータ分析ツールAlteryxでやってみるシリーズ、2025年7日目です。

※過去記事はこちら。AlteryxユーザーのためのAdvent of Codeの始め方1日目2日目3日目4日目5日目6日目

Day 7「Laboratories」

タイトルは「研究室」。

ゴミ圧縮機を出ると、過去のAoCでもでてきた研究室にたどり着きました(2024のDay6または2018のDay4です)。

どうやらテレポーテーションを研究しているそうですが、、、タキオンビームを発射しており、地図の下向きに発射されます。

.......S.......
...............
.......^.......
...............
......^.^......
...............
.....^.^.^.....
...............
....^.^...^....
...............
...^.^...^.^...
...............
..^...^.....^..
...............
.^.^.^.^.^...^.
...............

このとき、経路に「^」があると両脇にビームが別れます。Part1は、この別れた回数をカウントし、Part2はタキオンビームの経路の数を数えることです。

・ネ

・タ

・バ

・レ

Part1、2を解いてみる

典型的なAoCの地図問題+カウントを数える問題です。過去に似たようなのは何度もやった気がします。

MAP問題でいちいちデータを分割するのが面倒なのでマクロ化しています。

正直大したことはないのですが、問題文を考える作業に集中できます!

今回の問題は、上から下に流す形になります。通常のマップ問題だと上下左右ありますが、常にy方向に対して+1していくので考えやすい問題です。

基本的には次のポイントを探し(yを+1したポイントを作成し、MAPデータと結合)、値が「^」ならx-1とx+1したポイントにタキオンビームを作ります。そのタキオンビームを次の入力にするという反復マクロで解決できます。

Part1では、衝突判定したところを取りたいので、値が「^」かどうかの判定のところを出力にしてしまえばオッケー。Part2は、全ルートをトレースするようにするとレコード数が爆発するので(いわゆる組み合わせ爆発)、複数ルートをP1ではユニークを取りましたが、その時にそれまでのルートのカウントを合計してしまえばオッケーで、組み合わせのパターンから数におきかえることでレコード数を大きく削減することができます(これも過去に散々やられた問題なのでAoCやってる人は元々身についていると思います)。

まとめ

  • 本日はすんなりいきました
  • スタートでいつものスターターマクロがうまく動かず3分くらいロスりました・・・(昨日ちょっと変えたんですよね)
  • Part1は衝突のところをカウントするのに、普通に下までのルートを出して満足していました。衝突のところを何も考えてなかったですが、うまくマクロ出力ツール1個追加しただけでいけたので運が良かったです
  • Part2はおかげさまでPart1に対してカウントする項目をつけてユニーク化していたところを合計取っただけです。これもまぁ過去の積み重ねですね
  • 過去の積み重ねがないと、結構苦労しそうな内容ってことかもしれません(過去結構このパターンハマったので・・・)
  • おかげさまで今回はBase Aリーダーボードで初優勝できました!

コメント

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