import sys
import copy
sys.stdin = open('in.txt', 'rt')
sys.setrecursionlimit(3000)
n = int(input())
dfs_list = []
answer = []
for _ in range(n):
dfs_list.append(list(input()))
first = copy.deepcopy(dfs_list)
second = copy.deepcopy(dfs_list)
for i in range(n):
for k in range(n):
if second[i][k] == 'G':
second[i][k] = 'R'
for_list = []
for_list.append(first)
for_list.append(second)
def dfs(x, y, color, current_list):
global count
if x >= n or x < 0 or y >= n or y < 0:
return False
if current_list[x][y] == 0:
return False
elif current_list[x][y] == color:
current_list[x][y] = 0
dfs(x+1, y, color, current_list)
dfs(x-1, y, color, current_list)
dfs(x, y+1, color, current_list)
dfs(x, y-1, color, current_list)
return True
else:
return False
for f in for_list:
count = 0
for i in range(n):
for k in range(n):
current = f[i][k]
response = dfs(i, k, current, f)
if current != 0:
count += 1
answer.append(count)
for _ in answer:
print(_, end=" ")
문제 자체는 어렵지 않았지만 정상일때와 색맹일 때와 구별을 해서 작성을 해야해서 어떻게 해줄까 고민하다가 그냥 제일 클래식한 방법으로 copy 모듈을 import 해서 배열을 2개 만들어서 진행했다.