practivceAlgorithm/백준
[백준][Python] 14925 목장 건설하기
findTheValue
2021. 8. 18. 15:57
가장 큰 정사각형 만들기와 동일하다. 장애물이 나오면 최소 길이가 0으로 끊기고 다시 1부터 하나씩 늘려가는방식.
import sys
input = sys.stdin.readline
# 가장 큰 정사각형 문제와 같은 문제. 위 좌, 대각 안쪽 중 가장 변의 길이가 짧은 변에 하나를 추가시켜주는 방식이며
# 장애물을 만나면 다시 0부터 시작한다.
M, N = map(int, input().split())
matrix = [list(map(int, input().split())) for _ in range(M)]
dp_length = [[0 for _ in range(N+1)] for _ in range(M+1)]
max_length = 0
for i in range(1,M+1):
for j in range(1,N+1):
if not matrix[i-1][j-1]:
dp_length[i][j] = min(dp_length[i-1][j],dp_length[i][j-1],dp_length[i-1][j-1]) + 1
max_length = max(dp_length[i][j], max_length)
print(max_length)