위 문제도 핵심 풀이를 공유한다!(최대 넓이의 정사각형 찾기 문제는 저런 형식을 띈다고 보는 게 맞겠다!)
풀이 코드
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
square_list = [list(map(int, list(input().strip()))) for _ in range(n)]
for i in range(1, n) :
for j in range(1, m) :
if square_list[i][j] == 1 :
square_list[i][j] += min(square_list[i][j-1], square_list[i-1][j], square_list[i-1][j-1])
print(max(map(max, square_list)) ** 2)