알고리즘 문제풀이
가장 큰 정사각형(백준1915)
wiojfe
2024. 1. 7. 18:26
https://www.acmicpc.net/problem/1915
1915번: 가장 큰 정사각형
첫째 줄에 n, m(1 ≤ n, m ≤ 1,000)이 주어진다. 다음 n개의 줄에는 m개의 숫자로 배열이 주어진다.
www.acmicpc.net
import sys
input = sys.stdin.readline
n,m = map(int, input().split())
ans = 0
arr = [input().rstrip() for _ in range(n)]
dp =[[0]*m for _ in range(n)]
for i in range(n):
for j in range(m) :
if i>0 and j>0 and arr[i][j] == '1' :
dp[i][j]= 1+ min(int(arr[i-1][j-1]), int(arr[i-1][j]) , int(arr[i][j-1]))
else :
dp[i][j] = int(arr[i][j])
ans = max(ans, dp[i][j])
print(ans*ans)