728x90
반응형
import sys
sys.setrecursionlimit(50000)
def dfs(y,x):
if x <0 or y<0 or x>=m or y>=n :
return False
if graph[y][x] == 1 :
graph[y][x] = 0 # 방문처리
dfs(y-1,x)
dfs(y+1,x)
dfs(y,x-1)
dfs(y,x+1)
return True
return False
t = int(input())
t_cnt = []
for i in range(t):
m, n, k = map(int,sys.stdin.readline().split()) # 가로 세로 배추
graph = [ [0]*m for i in range(n) ]
for i in range(k):
a, b = map(int,input().split())
graph[b][a] = 1
cnt = 0
for y in range(n):
for x in range(m):
if dfs(y,x) == True:
cnt += 1
t_cnt.append(cnt)
for i in t_cnt:
print(i)
1. 풀이 : dfs 사용
2. 유의점 : 계속 런타임 에러 나서 한참 헤맸는데 위에 import sys ; sys.setrecursionlimit(50000) 이 코드만 넣으면 바로 해결 된다. 파이썬은 기본이 재귀가 1000 으로 설정되어 있어서 그렇다고 한다. 아마 확인하는 예제 중에 재귀가 1000이 넘어가는 것이 있는 듯 하다..
1012번: 유기농 배추
차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 �
www.acmicpc.net
728x90
반응형
'백준 > DFS_BFS' 카테고리의 다른 글
# 1260번: DFS와 BFS (0) | 2020.10.11 |
---|---|
깊이/너비 우선 탐색(DFS/BFS)-여행경로* (0) | 2020.10.11 |
# 2178 미로 탐색 (0) | 2020.10.05 |
# 2667: 단지 번호 붙이기 (0) | 2020.10.02 |
# 2606 바이러스 (0) | 2020.10.02 |