Number of Islands(島の数)
Number of Islands(島の数)とは
陸と水からなる二次元グリッドで、上下左右につながった陸のまとまりを数える課題です。
二次元配列をグラフとして捉え、連結成分を探索する基本を学べます。
判断するときに確認すること
- 上下左右だけを隣接としているか
- 同じマスを再訪問しないか
- 盤面の端を越えないか
具体例で整理する
避けたい判断
陸のマスを一つずつ数え、つながりを考慮しない。
条件が分かる判断
未訪問の陸から探索を開始し、到達した陸をすべて訪問済みにする。
設計とレビューで使う
このページの推奨は次のとおりです。
未訪問の陸を見つけるたびに数を増やし、DFSまたはBFSでつながる陸を訪問済みにする。
VERIFIED IN VEIN
VEINで解決したケース
手法から用途を後付けした例ではなく、実際の課題を起点にDSAの選択肢を適用した記録です。
接続された魔力脈を近い順に展開する
確認日 2026-09-09
- 課題
- コアにつながっている組織を重複なくたどり、近い位置から順に活性化する必要がある。
- 選択した方法
- Queueと訪問済みSetを使い、接続された範囲をBFSで展開する。
- 選んだ理由
- 目的地までの経路ではなく、接続された要素を近い順に一度ずつ処理する課題だから。
- 得られたこと
- グリッドの連結成分を調べる考え方を、魔力脈の活性化順序へ対応付けられた。