https://www.acmicpc.net/problem/10026
import sys
sys.setrecursionlimit(10**6)
dx = [0, 0, 1, -1]
dy = [1, -1, 0, 0]
# dfs
def dfs(gragh, visited, x, y):
visited[x][y] = 1
for i in range(4):
nx = x + dx[i]
ny = y + dy[i]
if (0 <= nx and nx < n and 0 <= ny and ny < n) and not visited[nx][ny] and graph[x][y] == graph[nx][ny]:
dfs(gragh, visited, nx, ny)
# 구현부
n = int(sys.stdin.readline())
visited = [[0 for _ in range(n)] for _ in range(n)]
graph = []
for _ in range(n):
temp = list(sys.stdin.readline().rstrip())
graph.append(temp)
# 일반인
cnt = 0
for i in range(n):
for j in range(n):
if not visited[i][j]:
dfs(graph, visited, i, j)
cnt += 1
print(cnt)
# 적록색맹
cnt = 0
visited = [[0 for _ in range(n)] for _ in range(n)]
for i in range(n):
for j in range(n):
if graph[i][j] == 'G':
graph[i][j] = 'R'
for i in range(n):
for j in range(n):
if not visited[i][j]:
dfs(graph, visited, i, j)
cnt += 1
print(cnt)
728x90
반응형
'🔻PS > Baekjoon' 카테고리의 다른 글
[Baekjoon] 백준 2644 로또 (0) | 2024.07.10 |
---|---|
[Baekjoon] 백준 2644 촌수계산 Python (0) | 2024.05.19 |
[Baekjoon] 백준 2935 소음 Python (0) | 2024.05.12 |
[Baekjoon] 백준 1654 랜선 자르기 Python (0) | 2024.05.12 |
[Baekjoon] 백준 2805 나무 자르기 Python (0) | 2024.05.11 |