코딩 이야기/백준 풀이
백준 1012번: 유기농 배추 파이썬 코드(dfs)
우기 woogi
2021. 2. 11. 00:29
반응형
import sys
sys.setrecursionlimit(100000)
t = int(sys.stdin.readline())
xx = [-1,1,0,0]
yy = [0,0,-1,1]
def dfs(a, b):
graph[a][b] = -1
for i in range(4):
if 0 <= a+one[i] < n and 0 <= b+two[i] < m:
if graph[a+xx[i]][b+yy[i]] == 1:
dfs(a+xx[i], b+yy[i])
return
for _ in range(t):
m,n,k = map(int, sys.stdin.readline().split())
graph = [[0 for _ in range(m)] for _ in range(n)]
count = 0
for _ in range(k):
x, y = map(int, sys.stdin.readline().split())
graph[y][x] = 1
for t in range(n):
for r in range(m):
if graph[t][r] == 1:
dfs(t, r)
count += 1
print(count)
맨 처음 인접리스트로 풀려하였다가 괜히 산으로 가는 것 같아서 인접행렬로 바꾼 후 dfs로 풀었다.
딱히 획기적인 방법으로 푼것은 아니고 그냥 평범한 풀이.
반응형