백준 DFS/BFS 문제
링크 : https://www.acmicpc.net/problem/1926
from collections import deque
n,m = map(int,input().split())
arr = [list(map(int,input().split())) for _ in range(n)]
visited = [[0] * m for _ in range(n)]
cnt = 0
ans = 0
dx=[1,-1,0,0]
dy = [0,0,1,-1]
def BFS(x,y):
q = deque()
q.append([x,y])
visited[x][y] = 1
temp = 1
while q:
x,y = q.popleft()
for i in range(4):
nx,ny = x + dx[i], y+dy[i]
if 0<= nx < n and 0<= ny < m and visited[nx][ny] == 0:
if arr[nx][ny] == 1:
temp += 1
visited[nx][ny] =1
q.append([nx,ny])
return temp
for i in range(n):
for j in range(m):
if arr[i][j] == 1 and visited[i][j] == 0:
ans = max(ans,BFS(i,j))
cnt+= 1
print(cnt)
print(ans)