취준생의 코딩테스트 연습기

[백준] 1012번 유기농 배추 / 파이썬(python) 본문

코딩테스트/백준

[백준] 1012번 유기농 배추 / 파이썬(python)

Jiwon_C 2021. 5. 19. 23:18

# 문제 링크

https://www.acmicpc.net/problem/1012

 

1012번: 유기농 배추

차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 

www.acmicpc.net

# Soultion

bfs 사용시 recursionError가 발생하므로, 2줄에서 재귀 최대깊이를 설정해주어야한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import sys
sys.setrecursionlimit(10000)
 
t= int(input())
for _ in range(t):
    m,n,k = map(int,input().split())
    graph = [[0]*for _ in range(n)]
 
    for _ in range(k):
        x,y = map(int,input().split())
        graph[y][x] = 1
    dx = [-1,1,0,0]
    dy = [0,0,-1,1]
 
    def dfs(x,y):
        if x<0 or x>=or y<0 or y>=m:
            return False
        if graph[x][y]==1:
            graph[x][y] = 0
            for i in range(4):
                dfs(x+dx[i],y+dy[i])
            return True
        return False
    cnt = 0
    for i in range(n):
        for j in range(m):
            if dfs(i,j)==True:
                cnt +=1
 
    print(cnt)
cs
 

 

Comments