https://www.acmicpc.net/problem/1012
1012번: 유기농 배추
차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에
www.acmicpc.net
import sys
# 1000이상의 재귀가 호출되면 재귀의 깊이를 늘려줘야함
sys.setrecursionlimit(10 ** 4)
input = sys.stdin.readline
t = int(input())
answer_0 = []
# 테스트 케이스 만큼 반복
for i in range(t):
# dfs 함수 만들기
def dfs(x,y):
if x<= -1 or y <= -1 or x>= m or y >= n :
return False
global graph
if graph[y][x] == 1:
graph[y][x] = 0
dfs(x,y+1)
dfs(x,y-1)
dfs(x-1,y)
dfs(x+1,y)
return True
return False
# m 가로 길이 n 세로 길이
m,n,k = map(int, input().split())
graph = []
# 밭의 넓이 만큼의 그래프 만들기
for i in range(n):
graph.append([0]*m)
#배추가 있는곳 표시하기
for i in range(k):
a,b = map(int, input().split())
graph[b][a] = 1
answer = 0
for i in range(m):
for j in range(n):
if dfs(i,j) == True:
answer += 1
answer_0.append(answer)
for i in answer_0:
print(i)
오늘 배운것
재귀의 반복이 1000번이 넘어가면 재귀의 깊이를 늘려줘야함
sys.setrecursionlimit(10 ** 4)'알고리즘(python) > DFS BFS' 카테고리의 다른 글
| 백준 2667 (0) | 2023.01.13 |
|---|---|
| 백준 2606 (0) | 2023.01.13 |