Free Trial

ウィークリーチャレンジリポジトリ

トップになるためのスキルをお持ちですか? ウィークリーチャレンジを購読しましょう。ベストを尽くして問題を解決し、解決策を共有して、他のユーザーがどのように同じ問題に取り組んだのか確認しましょう。私たちも解答例を共有しています。

チャレンジ #100: 47都道府県を塗り分けよう!

SaoriG
Alteryx Alumni (Retired)

遂にやりました!2019318日に初めての日本語版ウィークリーチャレンジが始まってから約1年と10か月の本日、

日本語版ウィークリーチャレンジは100問目を達成しました!日本語版ウィークリーチャレンジ100問目突破を記念して、         

これからの5週間は日本語版コミュニティのリーダーともいえる常連のみなさまにウィークリーチャレンジを出題して頂きます。

 

まず第一弾は@Tokimatsuさんからの出題です。ぜひチャレンジして、あなたの解決策をポストしてください!

 

tizu-siro-todohuken20121.png

 

 

与えられた日本地図のデータを使用して、隣接する都道府県が同じ色にならないように色を塗り分けてください。

 

ヒント)地図の彩色はグラフの頂点彩色の応用で解決できます。

頂点彩色については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

Qiu
21 - Polaris
21 - Polaris

@Tokimatsu 

#100おめでとうございます。

中々難しいですが、面白いそう問題です。

自分の限界かもしれませんが、解けてみます。

Tokimatsu
クエーサー

記念すべき100回目に選んでいただきありがとうございます。

 

地図の塗分けはいつかやってみたいと思ってたので、この機会にがんばりました。うちの会社だとP&IDをラインごとに色分けするのに使えそうです。地図なら4色で塗分けできるとはいえ各県の色の組み合わせを作ろうとすると4の47乗になるので、全部の組み合わせをリストアップして絞り込む方法は厳しいです。地図は国土地理院のデータを一般化ツールを使ってデータ量を減らして使ってます。

 

いつもとちょっと違う感じの Weekly Challenge ですが、お楽しみください。

DaisukeTsuchiya
マグネター

@Tokimatsu さん、おめでとうございます。そして100回記念おめでとうございます。
お陰様でどはまりしました。本日の業務に差し支えました…。


スポイラ
ロジックはあっているはずなのに、どうしても同じ色の組み合わせが隣り合わせになってしまうとかなり悩んだのですが、最初の空間マッチのオプション設定に問題あり、隣り合う組み合わせがうまく出ていませんでした。泣きましたが、できた時には感動しました。

マクロをコピーして3回使ったのですが、うまく組めばマクロ一つで処理できるかもしれませんね。


キャプチャ.JPG
DaisukeTsuchiya
マグネター

@Tokimatsu さん

回答拝見しました。なるほどマクロ部分や色分け部分工夫していますね。勉強になりました。まだまだ自分は修行が必要です。

AkimasaKajitani
17 - Castor
17 - Castor

@Tokimatsu さん 100回記念おめでとうございます!

 

そして、、、これ、中級じゃなくて上級だと思うレベル感・・・。反復マクロ内にまた反復マクロ入れて作成しました・・・。

 

ちなみに、四国と周辺、北海道と本州、沖縄と周辺用にカスタマイズリストを手で作って隣接とみなしています。

(岡山県出身なので、西日本の色塗りが気になりまして・・・)

 

 

ワークフロー

スポイラ
AkimasaKajitani_0-1611655358157.png


隣接リスト

AkimasaKajitani_4-1611655946177.png

 


反復マクロ1(外側):カラー付与部分の繰り返し

AkimasaKajitani_1-1611655411372.png



反復マクロ2(内側):カラー付与1回分

AkimasaKajitani_2-1611655461347.png

 


 

出力:

スポイラ
AkimasaKajitani_3-1611655798687.png

 

彩色問題を扱ったWeeklyChallengeは記憶の限りでは確か英語版でもなかったはず・・・。勉強になります。

 

※AMP Engineオンで作成しました

DaisukeTsuchiya
マグネター

@AkimasaKajitani 

私もこれは中の上とか、上の中とか下のレベル感だと思いました。(昔あった暗号とかよりは易しいですが…)
反復マクロに反復マクロとはさすがですね。私はマクロのコピー+編集というせこい手でしのぎました。
途中でくじけそうになりましたが、100回記念なのでなんとかやりました。おかげで本日予定していた仕事終わらず…。

Qiu
21 - Polaris
21 - Polaris

自分もMacro in Macroです。

ja-100-01.PNG

スポイラ
ja-100-02.PNGja-100-03.PNGja-100-04.PNG
SaoriG
Alteryx Alumni (Retired)

みなさんのご意見を反映して上級に更新しました。

 

danboll_life
アステロイド

始めはマクロなく解いてみようと思いましたが、Welsh Powellのアルゴリズムを参考に解きました

しかし、レポーティングツールのレポートマップの仕様に四苦八苦しました。レイヤー選択画面からcolorのデータが入った#1(デフォルト値)を選択し、テーマからカラーリングを変更しなければならないことを思い出せず苦労しました。データからテーマの分類プルダウン選択後に上述したカラーリングが表示されれば楽なのになと思いました

スポイラ
cl100_map.PNG

cl100.PNG

cl100_mc.PNG