rueki

BOJ 1051. 숫자 정사각형 본문

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
반응형
Comments