문제
https://www.acmicpc.net/problem/10026
소스코드
from collections import deque
import sys
if __name__ == "__main__":
n = int(input())
arr = [input().strip() for _ in range(n)]
dx = [1,-1,0,0]
dy = [0,0,1,-1]
#적록 색약이 아닌 사람이 봤을 때
res1 = 0
visited = [[0] * n for _ in range(n)]
for i in range(n):
for j in range(n):
if not visited[i][j]:
res1 +=1
visited[i][j] = 1
q = deque()
q.append([i,j])
while q:
x,y = q.popleft()
for k in range(4):
xx = x + dx[k]
yy = y + dy[k]
if 0<=xx<n and 0<=yy<n and not visited[xx][yy]:
if arr[x][y] == arr[xx][yy]:
q.append([xx,yy])
visited[xx][yy] = 1
#적록 색약인 사람이 봤을 때
res2 = 0
visited = [[0] * n for _ in range(n)]
for i in range(n):
for j in range(n):
if not visited[i][j]:
res2 +=1
visited[i][j] = 1
q = deque()
q.append([i,j])
while q:
x,y = q.popleft()
for k in range(4):
xx = x + dx[k]
yy = y + dy[k]
if 0<=xx<n and 0<=yy<n and not visited[xx][yy]:
if (arr[x][y] == 'R' or arr[x][y] == 'G') and (arr[xx][yy] == 'R' or arr[xx][yy] == 'G'):
q.append([xx,yy])
visited[xx][yy] = 1
elif arr[x][y] == 'B' and arr[xx][yy] == 'B':
q.append([xx,yy])
visited[xx][yy] = 1
print(res1)
print(res2)
'Algorithm' 카테고리의 다른 글
[백준][python]13460 구슬탈출2 (0) | 2023.06.28 |
---|---|
[백준][python]16234 인구이동 (0) | 2023.06.23 |
[백준][python]11559 Puyo Puyo (0) | 2023.06.18 |
[프로그래머스][python]게임 맵 최단거리 (0) | 2023.06.08 |
[백준][python]2234 성곽 (1) | 2023.06.06 |