from collections import deque
def solution(board):
# 모든 값이 0일 때는 0 리턴
if all([sum(i)==0 for i in board]):
return 0
answer = 1
res=board
# (1,1)부터 시작
for x in range(1,len(board)):
for y in range(1,len(board[x])):
# 값이 1인 곳을 발견하면 좌, 상, 대각선 값 비교
if board[x][y]==1:
res[x][y]=min(res[x-1][y], res[x-1][y-1], res[x][y-1])+1
answer=max(res[x][y],answer)
return answer**2