🖥 시작하며
시간 제한이 2초로 비교적 넉넉하기 때문에, 우선 완전탐색으로 구현할 생각부터 할 수 있다.
우선
result
변수를 선언한 후, 배열 순회 과정에서 count
변수로 각 꼭짓점이 같은지 판별해 같다면 reuslt
에 저장하는 방식으로 해결할 수 있다.⚙️ 코드
import sys input = sys.stdin.readline if __name__ == "__main__": """ 꼭짓점만 같으면 됨, count 수를 늘려 i + count 식만 확인하는 식으로. """ # N : 행, M : 열 N, M = map(int, input().split()) result = 1 # 정사각형 만들기 arr = [] for _ in range(N): number = input().rstrip() arr.append([int(digit) for digit in number]) # 이제 구현 # (0, 0)부터 (N-1, M-1)까지 정사각형 순환 for i in range(N): for j in range(M): # out of range를 방지하기 위함 for count in range(1, min(N - i, M - j)): if ( arr[i][j] == arr[i + count][j] == arr[i][j + count] == arr[i + count][j + count] ): result = max(result, count + 1) print(result**2) # 정사각형의 넓이 출력
댓글