[백준] 적록색약

 

문제

from collections import deque

n = int(input())

grid = [list(input()) for _ in range(n)]
grid_rg = [[('R' if c == 'G' else c) for c in row] for row in grid]

def bfs(i, j, grid, color):
    queue = deque()
    queue.append((i,j))
    visited[i][j] = True
    cnt = 0
    while queue:
        x, y = queue.popleft()
        for dx, dy in [(-1, 0), (1, 0), (0, -1), (0, 1)]:
            nx, ny = x + dx, y + dy
            if 0 <= nx < n and 0 <= ny < n and not visited[nx][ny] and grid[nx][ny] == color:
                visited[nx][ny] = True
                queue.append((nx, ny))
        cnt += 1
    return cnt

cnt1 = 0
visited = [[False] * n for _ in range(n)]
for i in range(n):
    for j in range(n):
        if not visited[i][j]:
            bfs(i, j, grid, grid[i][j])
            cnt1 += 1
            
cnt2 = 0
visited = [[False] * n for _ in range(n)]
for i in range(n):
    for j in range(n):
        if not visited[i][j]:
            bfs(i, j, grid_rg, grid_rg[i][j])
            cnt2 += 1

print(f"{cnt1} {cnt2}")