Algorithm/Baekjoon
[백준] 10026 : 적록색약 - Python
Dev.sohee
2020. 7. 10. 01:27
https://www.acmicpc.net/problem/10026
10026번: 적록색약
문제 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(
www.acmicpc.net
from collections import deque
# 상, 하, 좌, 우
dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1]
def bfs(x, y):
q.append([x, y])
check[x][y] = 1
while(q):
x, y = q.popleft()
for i in range(4):
nx, ny = x + dx[i], y + dy[i]
if 0 <= nx < N and 0 <= ny < N:
if s[nx][ny] == s[x][y] and check[nx][ny] == 0:
q.append([nx, ny])
check[nx][ny] = 1
N = int(input())
s = [list(input()) for _ in range(N)]
check = [[0] * N for _ in range(N)]
q = deque()
cnt = 0
for i in range(N):
for j in range(N):
if check[i][j] == 0:
bfs(i, j)
cnt += 1
print(cnt, end = ' ')
for i in range(N):
for j in range(N):
if s[i][j] == 'G':
s[i][j] = 'R'
check = [[0] * N for _ in range(N)]
cnt = 0
for i in range(N):
for j in range(N):
if check[i][j] == 0:
bfs(i, j)
cnt += 1
print(cnt)