1012. 유기농 배추
https://www.acmicpc.net/problem/1012
1012번: 유기농 배추
차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에
www.acmicpc.net
내 풀이 - 성공
import sys
sys.setrecursionlimit(10**6)
def func(field, i, j):
field[i][j] = 0
if i > 0 and field[i-1][j]:
func(field, i-1, j)
if j > 0 and field[i][j-1]:
func(field, i, j-1)
if i < len(field)-1 and field[i+1][j]:
func(field, i+1, j)
if j < len(field[0])-1 and field[i][j+1]:
func(field, i, j+1)
ans = []
T = int(input())
for _ in range(T):
M, N, K = map(int, input().split())
field = []
for _ in range(N):
field.append([0]*M)
for _ in range(K):
x, y = map(int, input().split())
field[y][x] = 1
a = 0
for i in range(N):
for j in range(M):
if field[i][j]:
a += 1
func(field, i, j)
ans.append(a)
for a in ans:
print(a)
field 값이 1 이면 재귀 돌려서 인접한 모든 배추들을 0 으로 바꿔주기
그때마다 a + 1 해주며 세준 지렁이를 ans 에 저장해서 한번에 출력
Python 재귀 깊이
import sys sys.setrecursionlimit(10**6)
파이썬의 기본 재귀 깊이 제한은 1000으로 매우 얕은 편이므로
setrecursionlimit => Python이 정한 최대 재귀 깊이를 변경해줘야 함
참고
https://help.acmicpc.net/judge/rte/RecursionError
'알고리즘 > 백준' 카테고리의 다른 글
[백준 - SILVER 1] 1074. Z - Python3 (0) | 2021.09.27 |
---|---|
[백준 - SILVER 5] 1181. 단어 정렬 - Python3 (0) | 2021.09.27 |
[백준 - BRONZE 3] 1085. 직사각형에서 탈출 - Python3 (0) | 2021.09.25 |
[백준 - SILVER 3] 1003. 피보나치 함수 - Python3 (0) | 2021.09.25 |
[백준 - SILVER 5] 1018. 체스판 다시 칠하기 - Python3 (0) | 2021.09.25 |
댓글