python/알고리즘 문제풀이
BOJ 1051. 숫자 정사각형
륵기
2022. 8. 10. 10:31
728x90
반응형
https://www.acmicpc.net/problem/1051
1051번: 숫자 정사각형
N×M크기의 직사각형이 있다. 각 칸에는 한 자리 숫자가 적혀 있다. 이 직사각형에서 꼭짓점에 쓰여 있는 수가 모두 같은 가장 큰 정사각형을 찾는 프로그램을 작성하시오. 이때, 정사각형은 행
www.acmicpc.net
- 정사각형 최대 변은 가로, 세로 중 적은 길이가 최대값을 가지게 됨
- 변이 제일 짧은 경우부터 차례대로 정사각형 각 모서리 값을 비교
n, m = map(int, input().split())
arr = []
for i in range(n):
arr.append(list(input()))
max_sq = min(n, m)
ans = 0
for i in range(n):
for j in range(m):
for k in range(max_sq):
if ((i+k) < n) and ((j+k)<m) and (arr[i][j]== arr[i][j+k] == arr[i+k][j] == arr[i+k][j+k]):
ans = max(ans, (k+1)**2)
print(ans)
728x90
반응형