https://www.acmicpc.net/problem/10026
import sys
from collections import deque
def Input_Data():
readl = sys.stdin.readline
N = int(input())
graph = [list(input()) for _ in range(N)]
return N, graph
d = ((1,0), (0,1), (-1, 0), (0,-1))
def Bfs(i,j,color):
q = deque()
q.append((i,j))
visited[i][j] = 1
while q:
x,y = q.popleft()
for dx, dy in d:
nx, ny = x+dx, y+dy
if not (0<=nx<N and 0<=ny<N) : continue
if visited[nx][ny] == 1: continue
if graph[nx][ny] == color:
visited[nx][ny] = 1
q.append((nx,ny))
N , graph = Input_Data()
visited = [[0]* (N) for _ in range(N)]
cnt=0
for i in range(N):
for j in range(N):
if not visited[i][j]:
Bfs(i,j,graph[i][j])
cnt +=1
for i in range(N):
for j in range(N):
if graph[i][j] == 'G':
graph[i][j] = 'R'
visited = [[0]* (N) for _ in range(N)]
cnt2 = 0
for i in range(N):
for j in range(N):
if not visited[i][j]:
Bfs(i,j,graph[i][j])
cnt2 +=1
print(cnt, cnt2)
'Algorithm' 카테고리의 다른 글
[백준 6593] 상범 빌딩 (0) | 2024.08.31 |
---|---|
[백준 1068] 트리 (0) | 2024.08.21 |
[백준 2578] 빙고 (0) | 2024.02.10 |
[백준 2583] 영역 구하기 (1) | 2024.02.04 |
[백준 6236] 용돈 관리 (0) | 2024.01.31 |