728x90
반응형
[코드 구현]
n, m = map(int, input().split())
arr = [list(map(int, input())) for _ in range(n)]
res = 0
for i in range(n):
for j in range(m):
for k in range(n if n < m else m): # 행과 열 중 더 작은 것을 기준으로 정사각형 탐색
if i+k < n and j+k < m: # 주어진 인덱스 벗어나지 않게
if arr[i][j] == arr[i][j+k] == arr[i+k][j] == arr[i+k][j+k]: # 꼭짓점의 숫자가 모두 같은 지 확인
if res < k:
res = k
print((res+1)*(res+1))
[문제 출처]
백준 1051번 숫자 정사각형 : https://www.acmicpc.net/problem/1051
문제) N*M크기의 직사각형이 있다. 각 칸은 한 자리 숫자가 적혀 있다. 이 직사각형에서 꼭짓점에 쓰여 있는 수가 모두 같은 가장 큰 정사각형을 찾는 프로그램을 작성하시오. 이때, 정사각형은 행 또는 열에 평행해야 한다.
입력) 첫째 줄에 N과 M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 수가 주어진다.
출력) 첫째 줄에 정답 정사각형의 크기를 출력한다.
반응형
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준] ATM / 수 정렬하기 / 파이썬 / Python / 정렬 (2) | 2020.10.12 |
---|---|
[백준] 최단경로 / 1753번 / 파이썬 / Python / Dijkstra (0) | 2020.10.09 |
0529_백준 15684번 : 사다리 조작/ 완전탐색(Brute-Force)/ Python (1) | 2020.05.29 |
0528_백준 1753번 : 최단경로/ 다익스트라(Dijkstra) 알고리즘/ Python (0) | 2020.05.28 |
0527_ 백준 11725번 : 트리의 부모 찾기/ DFS / Python (0) | 2020.05.27 |