문제 링크: www.acmicpc.net/problem/1915
1915번: 가장 큰 정사각형
첫째 줄에 n, m(1 ≤ n, m ≤ 1,000)이 주어진다. 다음 n개의 줄에는 m개의 숫자로 배열이 주어진다.
www.acmicpc.net
문제 유형: DP
접근방식:
n x m 배열에서 1인 사각형을 구하는 문제이다. 정사각형 생성 가능 여부를 아는 방법은 대각선,왼쪽, 오른쪽에 최솟값의 + 1 을 해서 알 수 있다.
코드:
Python3
n,m = map(int,input().split())
matrix = [[0] * (m+1) for i in range(n+1)]
ans = 0
for i in range(1,n+1):
c = input()
for j in range(1,m+1):
matrix[i][j] = int(c[j-1])
if matrix[i][j] == 1:
matrix[i][j] = min(matrix[i-1][j], min(matrix[i-1][j-1], matrix[i][j-1])) + 1
ans = max(ans, matrix[i][j] * matrix[i][j])
print(ans)
'Algorithnm > 백준' 카테고리의 다른 글
[백준]2742번: 기찍 N (0) | 2021.01.21 |
---|---|
[백준]2741번: N 찍기 (0) | 2021.01.21 |
[백준]15552번: 빠른 A + B (0) | 2021.01.21 |
[백준]2747번: 피보나치 수 (2) | 2020.12.13 |
[백준] 2302번: 극장좌석 (2) | 2020.12.09 |
최근댓글