遂にやりました!2019年3月18日に初めての日本語版ウィークリーチャレンジが始まってから約1年と10か月の本日、
日本語版ウィークリーチャレンジは100問目を達成しました!日本語版ウィークリーチャレンジ100問目突破を記念して、
これからの5週間は日本語版コミュニティのリーダーともいえる常連のみなさまにウィークリーチャレンジを出題して頂きます。
まず第一弾は@Tokimatsuさんからの出題です。ぜひチャレンジして、あなたの解決策をポストしてください!
与えられた日本地図のデータを使用して、隣接する都道府県が同じ色にならないように色を塗り分けてください。
ヒント)地図の彩色はグラフの頂点彩色の応用で解決できます。
頂点彩色についてはWelsh Powellのアルゴリズムがよく知られています。
https://www.geeksforgeeks.org/welsh-powell-graph-colouring-algorithm/
また、地図を塗分けるためには4色あれば十分なことがわかっています。
https://ja.wikipedia.org/wiki/%E5%9B%9B%E8%89%B2%E5%AE%9A%E7%90%86
@Tokimatsu さん、おめでとうございます。そして100回記念おめでとうございます。
お陰様でどはまりしました。本日の業務に差し支えました…。
@Tokimatsu さん
回答拝見しました。なるほどマクロ部分や色分け部分工夫していますね。勉強になりました。まだまだ自分は修行が必要です。
@Tokimatsu さん 100回記念おめでとうございます!
そして、、、これ、中級じゃなくて上級だと思うレベル感・・・。反復マクロ内にまた反復マクロ入れて作成しました・・・。
ちなみに、四国と周辺、北海道と本州、沖縄と周辺用にカスタマイズリストを手で作って隣接とみなしています。
(岡山県出身なので、西日本の色塗りが気になりまして・・・)
ワークフロー
隣接リスト
反復マクロ2(内側):カラー付与1回分
出力:
彩色問題を扱ったWeeklyChallengeは記憶の限りでは確か英語版でもなかったはず・・・。勉強になります。
※AMP Engineオンで作成しました
@AkimasaKajitani
私もこれは中の上とか、上の中とか下のレベル感だと思いました。(昔あった暗号とかよりは易しいですが…)
反復マクロに反復マクロとはさすがですね。私はマクロのコピー+編集というせこい手でしのぎました。
途中でくじけそうになりましたが、100回記念なのでなんとかやりました。おかげで本日予定していた仕事終わらず…。
みなさんのご意見を反映して上級に更新しました。
始めはマクロなく解いてみようと思いましたが、Welsh Powellのアルゴリズムを参考に解きました
しかし、レポーティングツールのレポートマップの仕様に四苦八苦しました。レイヤー選択画面からcolorのデータが入った#1(デフォルト値)を選択し、テーマからカラーリングを変更しなければならないことを思い出せず苦労しました。データからテーマの分類プルダウン選択後に上述したカラーリングが表示されれば楽なのになと思いました