Quizをやってみました。Quizをやってみました。DevFestのQuizの私の回答(に使ったプログラム)を晒してみます。間違いなどのご指摘があればコメントをお願いします。ちなみに、こちらには他の方の回答(プログラム)がまとめられています。いろんな解き方がありますね。パッチワーク問題の回答だけ。問題文の一部を引用します。行のテキストがあります。升目状に並べ、上下左右に同じ文字がある部分をつながっているとみなします。塗りつぶしてください。“_”で塗りつぶすこととします。行)として答えてください。以下の例1を見てください。この入力には単一の文字4つでつながった領域が3箇所あります。これらすべてが「最も多くの文字がつながっている領域」なので、全て”_”で塗りつぶし、その数を数えています。例1:入力ABAABBABAABAABBABABBBABAA塗りつぶしたところ.AB__BB_B__B____AB___BABAA答え23430私の回答プログラムを紹介する前にまず解き方を説明します。AやBとあるひとつひとつの文字を”Block”とします。上下左右のBlockが同じ文字の領域を”Region”とします。Blockは自分が所属するRegionを最大1つ保持(参照)し、Regionは同じRegionに属するすべてのBlockを保持(参照)します。BlockとRegion入力データを読み込むときは、左上から順に一行一行読むことになるので、ひとつBlockを作るたびに、上または左にあるBlockが同じ文字ならば、それらをくっつけて(Connectして)ひとつのRegionとする処理を行います。Connectまたそのときに同じRegionに属するBlockの数を取得し、さらに最大のBlock数を持つRegionも(複数)保持するようにします。入力データを読み終わったときに、もう一度左上から最大のBlock数を持つRegionに属するBlockの数を行毎にカウントすれば、回答が得られます。プログラムはJavaで書きました。自分が誰の領地でもなければ、相手色に染まる。自分にすでに領地があれば、相手を自分色に染める。仕事の納期直前だったので、やっつけで作ろうと思ったのですが、思ったより難しくて結局ちゃんと設計して作りました。問題は面白かったのですが、おかげさまで睡眠時間がだいぶ削られました。Magazineを思い出しますね。検索したらこういうサイトを見つけました。2010に行ってきました。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。