グリンチは倉庫のクリスマスプレゼントを盗もうとしています。そのためには、どのプレゼントに監視がついていないかを知る必要があります。
倉庫は文字列の配列(string[])で表され、各プレゼント(*)は、その位置の上下左右のどこかにカメラ(#)があれば守られているとみなされます。空きスペースは ドット(.) で表されます。
あなたのタスクは、監視されていないプレゼントの数を数えることです。つまり、上下左右のいずれの位置にもカメラがないプレゼントの数を求めてください。
注意:「隣接」とみなされるのは上下左右の4方向のみで、斜めは含みません。
角や端にあるプレゼントも、真横・真上・真下にカメラがなければ監視されていない可能性があります。
findUnsafeGifts([
'.*.',
'*#*',
'.*.'
]) // ➞ 0
// すべてのプレゼントがカメラの隣にある
findUnsafeGifts([
'...',
'.*.',
'...'
]) // ➞ 1
// このプレゼントの周りにはカメラがない
findUnsafeGifts([
'*.*',
'...',
'*#*'
]) // ➞ 2
// 左上と右上のプレゼントの周りにはカメラがない
findUnsafeGifts([
'.....',
'.*.*.',
'..#..',
'.*.*.',
'.....'
]) // ➞ 4
// 4つのプレゼントにはカメラがない。なぜならカメラとは斜めの位置関係にあるだけだから