Number of Islands(島の数)

Number of Islands(島の数)とは

陸と水からなる二次元グリッドで、上下左右につながった陸のまとまりを数える課題です。

二次元配列をグラフとして捉え、連結成分を探索する基本を学べます。

判断するときに確認すること

  • 上下左右だけを隣接としているか
  • 同じマスを再訪問しないか
  • 盤面の端を越えないか

具体例で整理する

避けたい判断

陸のマスを一つずつ数え、つながりを考慮しない。

条件が分かる判断

未訪問の陸から探索を開始し、到達した陸をすべて訪問済みにする。

設計とレビューで使う

このページの推奨は次のとおりです。

未訪問の陸を見つけるたびに数を増やし、DFSまたはBFSでつながる陸を訪問済みにする。

VERIFIED IN VEIN

VEINで解決したケース

手法から用途を後付けした例ではなく、実際の課題を起点にDSAの選択肢を適用した記録です。

接続された魔力脈を近い順に展開する

確認日 2026-09-09

課題
コアにつながっている組織を重複なくたどり、近い位置から順に活性化する必要がある。
選択した方法
Queueと訪問済みSetを使い、接続された範囲をBFSで展開する。
選んだ理由
目的地までの経路ではなく、接続された要素を近い順に一度ずつ処理する課題だから。
得られたこと
グリッドの連結成分を調べる考え方を、魔力脈の活性化順序へ対応付けられた。