๋ฐฑ์ค 1926๋ฒ ํ์ด์ฌ
import sys
from collections import deque
input = sys.stdin.readline
n, m = map(int, input().split())
feild = []
for _ in range(n):
feild.append(list(map(int, input().split())))
move = [(0,1), (-1, 0), (1, 0), (0, -1)]
# ์ํ์ข์ฐ๋ก ์ด๋ ํ ์ ์๋ ๊ณณ
big, size, cnt = 0, 0, 0
visited = [[False] * m for _ in range(n)]
for i in range(n):
for j in range(m):
if (not visited[i][j]) and (feild[i][j] == 1):
cnt += 1 # ์ฌ์ ๊ฐฏ์
size = 1
q = deque([(i, j)])
visited[i][j] = True
while q:
xi, xj = q.popleft()
for mi, mj in move:
ci, cj = (xi + mi), (xj + mj)
if 0<=ci<n and 0<=cj<m :
# ์ด๋๊ฐ๋ฅ ์์น๊ฐ n x m ๋ฒ์ ๋ด์์
if (feild[ci][cj] == 1) and (not visited[ci][cj]):
# ์ฌ์ด ์์นํด ์์ผ๋ฉด์ ๋ฐฉ๋ฌธ ๊ธฐ๋ก์ด ์์ ๋
q.append((ci, cj)) # ๋ค์ ๋ฐฉ๋ฌธํ๋ค.
size += 1 # ์ฌ์ ํฌ๊ธฐ ์ธก์
visited[ci][cj] = True
if size > big: # ๊ฐ์ฅ ํฐ ์ฌ์ ํฌ๊ธฐ๋ฅผ ์ํ ๋น๊ฒจ
big = size
print(cnt)
print(big)