숫자의 위치인 행과 열이 등차수열을 이루는 숫자 조합 중에 가장 큰 제곱수를 찾는 문제였다
가능한 등차수열의 범위는 (-row, row), (-col, col)이므로 해당 범위에 해당하는 등차수열을 하나씩 확인해주며 최댓값을 갱신해주었다
소스 코드
import math
row, col = map(int, input().split())
data = [list(input()) for _ in range(row)]
answer = -1
for i in range(row):
for j in range(col):
for rd in range(-row, row):
for rc in range(-col, col):
if rd == 0 and rc == 0: continue
string = []
n = i
m = j
while (0<=n<row) and (0<=m<col):
string.append(data[n][m])
val = math.sqrt(int("".join(string)))
if val == int(val):
answer = max(answer, int(val)**2)
n += rd
m += rc
print(answer)