タイトルは要改善 「すべての白マスの内、黒マスに隣接しているものを黒にする」は「すべての黒マスについて、隣接マスに白マスがあるなら、それを黒にする」と同じ

python

for x in all_white_cell:
    if any(is_black(y) for y in neighbor(x)):
        toBlack(x)

python

for x in all_black_cell:
    for y in neighbor(x):
        if is_white(y):
            toBlack(y)

後者では一度処理した黒マスは二度と処理しなくて良いので計算量を削減できる

問題変換