Skip to content

Commit bcfc8a2

Browse files
committed
[23.01.26/Python] 적록색약
1 parent 686dce9 commit bcfc8a2

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

Python_BOJ_2023/10026.py

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# 적록색약
2+
import sys
3+
sys.setrecursionlimit(10 ** 8)
4+
5+
n = int(input())
6+
graph = [list(map(str, input())) for _ in range(n)]
7+
dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1]
8+
9+
def dfs(x, y):
10+
visited[x][y] = True
11+
for i in range(4):
12+
nx, ny = x + dx[i], y + dy[i]
13+
if 0 <= nx < n and 0 <= ny < n:
14+
if not visited[nx][ny]:
15+
if graph[nx][ny] == graph[x][y]:
16+
dfs(nx, ny)
17+
18+
ans = 0
19+
visited = [[False] * n for _ in range(n)] # 정상시 용 초기화
20+
for i in range(n):
21+
for j in range(n):
22+
if not visited[i][j]:
23+
dfs(i, j)
24+
ans += 1
25+
26+
for i in range(n): # 그래프를 색맹용으로 바꾸기
27+
for j in range(n):
28+
if graph[i][j] == 'G':
29+
graph[i][j] = 'R'
30+
31+
ans2 = 0
32+
visited = [[False] * n for _ in range(n)] # 색맹용 초기화
33+
for i in range(n):
34+
for j in range(n):
35+
if not visited[i][j]:
36+
dfs(i, j)
37+
ans2 += 1
38+
39+
print(ans, ans2)

0 commit comments

Comments
 (0)