[백준] 1012번 유기농 배추, Python

이건회·2022년 1월 27일
0

백준

목록 보기
1/15
import sys
sys.setrecursionlimit(10**6)
#테스트 케이스
t=int(input())
for _ in range(t):
  #가로길이 m, 세로길이 n, 배추의 수 k
  m,n,k=map(int,input().split())
  #배추 위치정보
  graph=[]
  for i in range(m):
    v=[0]*n
    graph.append(v)
  for i in range(k):
    a,b=map(int,input().split())
    graph[a][b]=1


  #dfs 정의
  def dfs(x,y):
    if x<=-1 or x>=m or y<=-1 or y>=n:
      return False
    if graph[x][y]==1:
      graph[x][y]=0
      dfs(x-1,y)
      dfs(x,y-1)
      dfs(x+1,y)
      dfs(x,y+1)
      return True
    return False

  #모든 배추에 대해 지렁이 수 찾기
  cnt=0
  for i in range(m):
    for j in range(n):
      #현재 위치에서 dfs 수행
      if dfs(i,j)==True:
        cnt+=1
  print(cnt)

dfs를 사용해서 풀었다

profile
하마드

0개의 댓글