bong-u/til

백준 - 1915 : 가장 큰 정사각형 (G4)

수정일 : 2024-11-15

 1N, M = map(int, input().split())
 2
 3L = [list(map(int, input())) for _ in range(N)]
 4
 5dp = [[0]*(M+1) for _ in range(N+1)]
 6
 7result = 0
 8
 9for i in range(1, N+1):
10    for j in range(1, M+1):
11        dp[i][j] = L[i-1][j-1]
12
13        if L[i-1][j-1]:
14            dp[i][j] = min(dp[i-1][j], dp[i][j-1], dp[i-1][j-1])+1
15        result = max(result, dp[i][j])
16
17for i in dp:
18    print (i)
19print (result**2)
  • 조금 시간이 걸렸지만 혼자 힘으로 풀었다
  • 점화식은 dp[i][j] = min(dp[i-1][j], dp[i][j-1], dp[i-1][j-1])+1이다.
  • 모두 0이면 0, 하나라도 1이면 1이 답이라는 것을 생각해야 한다.