poow810
article thumbnail

Approach

  • 정사각형의 최댓값을 찾아야했으므로, 안쪽이 아닌 바깥쪽부터 탐색을 시작했다.
  • 크기가 그렇게 크지 않기 때문에, 모든 배열을 탐색하였다.

Solution 💡

import sys

def find_squre(s):
    for i in range(N-s+1):
        for j in range(M-s+1):
            if mp[i][j] == mp[i][j+s-1] == mp[i+s-1][j] == mp[i+s-1][j+s-1]:
                return True

N, M = map(int, sys.stdin.readline().split())

mp = [list(map(int, sys.stdin.readline().strip())) for _ in range(N)]

check = min(N, M)

for i in range(check, 0, -1):
    if find_squre(i):
        print(i**2)
        break
profile

poow810

@woonii_

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!