from sys import stdin
N, M = map(int, stdin.readline().split())
board = []
for _ in range(N):
b = list(map(int, stdin.readline().rstrip()))
board.append(b)
# 가장 작은 정사각형 값은 1이므로 1로 초기화
res = 1
for row in range(N-1):
for col in range(M-1):
# 정사각형 크기를 조절
num = 1
while True:
# 범위를 벗어날 때 값을 리턴
if (row+num) == N or (col+num) == M:
break
# 각 꼭짓점 숫자 확인
if board[row][col] == board[row+num][col] and board[row][col] == board[row][col+num] and board[row][col] == board[row+num][col+num]:
res = max(res, (num+1)*(num+1))
# print(res)
num += 1
print(res)
비교적 간단하게 풀린다고 생각했는데 계속 틀렸다고 떠서 당황했던 문제 😂
알고보니 꼭짓점 숫자 확인하는 부분에서 인덱싱 오류가 있었다 헤헤..
HJ 쌤이 알려준 러버덕 디버깅하다가 알아냈는데 이거 참 괜찮은 방법인 거 같다👍🏻❗️