Algorithm

[백준 10026] 적록색약

moguogu 2024. 7. 24. 23:12

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