Skip to content

Commit de5c006

Browse files
committed
[BOJ] #1012.유기농 배추 / 실버2 / 50(X)
1 parent 9b084cc commit de5c006

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
def dfs(x, y):
2+
# 배추밭의 범위를 벗어나면 종료
3+
if x < 0 or x >= M or y < 0 or y >= N:
4+
return
5+
# 배추가 없거나 이미 방문한 경우 종료
6+
if graph[y][x] == 0:
7+
return
8+
9+
# 현재 배추 방문 처리
10+
graph[y][x] = 0
11+
12+
# 상, 하, 좌, 우로 재귀 호출
13+
dfs(x + 1, y)
14+
dfs(x - 1, y)
15+
dfs(x, y + 1)
16+
dfs(x, y - 1)
17+
18+
T = int(input())
19+
20+
for _ in range(T):
21+
M, N, K = map(int, input().split())
22+
# NxM 행렬
23+
graph = [[0] * M for _ in range(N)]
24+
25+
for _ in range(K):
26+
x, y = map(int, input().split()) # 배추 위치 (x: 가로, y: 세로)
27+
graph[y][x] = 1 # (y,x) 위치에 배추 표시
28+
29+
count = 0 # 배추흰지렁이 수 (군집 개수)
30+
31+
for y in range(N):
32+
for x in range(M):
33+
if graph[y][x] == 1: # 배추가 있고 방문하지 않았다면
34+
dfs(x, y) # DFS 호출
35+
count += 1 # 군집 개수 증가
36+
37+
print(count)

0 commit comments

Comments
 (0)