티스토리 뷰
728x90
반응형
문제
https://www.acmicpc.net/problem/10026
10026번: 적록색약
적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록)
www.acmicpc.net
코드
import collections
n = int(input())
graph = [list(input()) for _ in range(n)]
check = [[False]*n for _ in range(n)]
queue = collections.deque()
dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1]
count1=0
count2=0
def bfs(x,y):
queue.append((x,y))
while queue:
x,y = queue.popleft()
for i in range(4):
nx = x + dx[i]
ny = y + dy[i]
if 0 <= nx < n and 0 <= ny < n:
if graph[nx][ny] == graph[x][y] and check[nx][ny] == False:
check[nx][ny] = True
queue.append((nx,ny))
for x in range(n):
for y in range(n):
if check[x][y] == False:
count1 += 1
bfs(x,y)
for x in range(n):
for y in range(n):
if graph[x][y] == 'G':
graph[x][y] = 'R'
check = [[False]*n for _ in range(n)]
for x in range(n):
for y in range(n):
if check[x][y] == False:
count2 += 1
bfs(x,y)
print(count1, count2)
일반사람이 봤을때 R,G,B에 영역 개수를 구하고
적록색약인 사람이 봤을경우에는 G를 R로 바꿔서 영역 개수를 구하면된다.
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 11403번, 경로 찾기 (Python) (0) | 2021.07.21 |
---|---|
[백준] 15900번, 나무 탈출 (Python) (0) | 2021.07.21 |
[백준] 2583번, 영역 구하기 (Python) (0) | 2021.07.16 |
[백준] 4963번, 섬의 개수 (Python) (0) | 2021.07.15 |
[백준] 11057번, 오르막 수 (Python) (0) | 2021.07.14 |
댓글