코딩

백준 1915. 가장 큰 정사각형 파이썬(PYTHON)

무는빼주세요 2020. 11. 14. 14:50

문제링크 : www.acmicpc.net/problem/1915

 

1915번: 가장 큰 정사각형

첫째 줄에 n, m(1 ≤ n, m ≤ 1,000)이 주어진다. 다음 n개의 줄에는 m개의 숫자로 배열이 주어진다.

www.acmicpc.net

 

 

def solution(N,M,MAPS):
    answer = 1
    for i in range(1,N):
        for j in range(1,M):
            if MAPS[i][j] == 1:
                MAPS[i][j] = min(MAPS[i-1][j-1],MAPS[i][j-1],MAPS[i-1][j])+1
                answer = max(MAPS[i][j], answer)
    
    return answer**2
def main():
    N, M = map(int,input().split())
    MAPS = list()
    check=False
    for i in range(N):
        line = list(map(int,list(input())))
        if 1 in line:
            check=True
        MAPS.append(line)
    if check == False:
        print(0)
    else:
        print(solution(N, M, MAPS))

main()
댓글수0