Mapのキーに独自キーを割り当てる D - すぬけ君の塗り絵 / Snuke's Coloring
問題
D: すぬけ君の塗り絵 / Snuke's Coloring - AtCoder Beginner Contest 045 | AtCoder
解き方
ポイントは以下の通り。
- Mapを用いて3×3の四角形とその範囲に存在する黒マスの数を管理する。
- 1つの黒マスが影響する四角形は9個(四角形の中央のマスを基準とする)
- 全ての黒マスについて、影響する四角形が登場した数だけプラス。
- 黒マスが含まれない四角形の数は全体から引く。
Mapのキーに独自キーを割り当てる。
今回のMapのデータ構造はキーを独自クラスのPoint(x, y座標を管理)にし、バリューはInt型とする。この時、Mapが持つメソッドcontainsKey
やget
などを用いる際に、Pointのプロパティであるx
, y
の値が一致するか否かで実装したい。これは以下のように親クラスのメソッドをオーバーライドする必要がある。
このようにequals
とhashCode
メソッドをそれぞれオーバーライドすることで実装可能である。