티스토리 뷰

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)          
공지사항
최근에 올라온 글
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함