—2025/05/13
今日はカラリとした五月の晴れでした。
久しぶりAtcoderの問題を解こうと思います。今日の問題はブロックパズルぽくなっています。
問題
机の上に N 個の赤色や青色の積み木が縦に積まれています。
あなたは、赤色の積み木と青色の積み木が隣り合っているような部分を選んで、それら 2 個の積み木を取り除く操作を何度でも行えます。
このとき、取り除いた積み木の上にあった積み木は真下の物体の上に落下します。
最大で何個の積み木を取り除けるでしょうか。
なるほど、ゲーム「ブロックパズル」を思い出せます、なぜブロックが最終的にほとんど消えていくの?よく考えたことがなかった。
考え①積み木は上から落ちてくるので、一番下の積み木から取り除くとよい。
例を挙げます、

この例の中に、赤色と青色それぞれ3個、数が同じです。どんな動き?
下から隣接の2個異色の積み木を見つけて、消えていく、最終的に全部なくなる。

もう一つ例を見てみる、

赤色積み木は4個、青色のは3個。どんな動きかな?
赤色の積み木は青色より1個多いので、最終的に、赤色1つ残っている。
考え②積み木の積み方と関係なく、どのような順番で取り除いても、2色積み木の少ない方の個数の2倍を取り除くことができます。例えば、上の例に、少ない方が青色の3個、取り除けるのが赤と青合わせて6個です。
纏めて、2色ブロックパズルゲーム、それぞれの個数が同じであれば、必ず全部消えていく。
個数が違っている場合、色少ない方の個数 ×2が全部消えていく。
ところですが、最近ポイ活の話をよく耳にしませんか?お金が貯まります。

ショッピングやクレジットカード発行、口座開設やアプリダウンロードなど色々な方法でポイントを貯められ、 アプリ版では動画を見たり歩くだけでポイントを貯めることができます。
貯まったポイントは1pt=1円で現金や電子マネー、ギフトカードなど50種類以上に交換可能。 登録は完全無料です。
宜しかったら、ぜひ登録してみてください。
【Point Income(ポイントインカム)】