Coding Test/백준(Python)
[백준/Python] 1012번(BFS,DFS)_유기농 배추
syunze
2024. 3. 12. 15:00
📌문제 유형
BFS,DFS (실버2)
📌문제
채점 현황
www.acmicpc.net
📌나의 문제풀이
import sys
sys.setrecursionlimit(10**6)
t = int(input())
def dfs(x_,y_):
dx = [0,0,1,-1]
dy = [1,-1,0,0]
for i in range(4):
nx = x_ + dx[i]
ny = y_ + dy[i]
if 0 <= nx < m and 0 <= ny < n:
if maps[nx][ny] == 1 and visited[nx][ny] == 0:
visited[nx][ny] = 1
dfs(nx,ny)
while t > 0:
# t번만큼 반복
t -= 1
m,n,k = map(int,input().split())
maps = [[0 for _ in range(n)] for _ in range(m)]
for _ in range(k):
a,b = map(int,input().split())
maps[a][b] = 1
visited = [[0 for _ in range(n)] for _ in range(m)]
cnt = 0
for x in range(m):
for y in range(n):
if maps[x][y] == 1 and visited[x][y] == 0:
visited[x][y] = 1
dfs(x,y)
cnt += 1
print(cnt)
📌리뷰
- DFS의 기본 포멧 : if 제어문 없음, dfs 재귀에 return 없음
728x90