1. 나의 생각
1. 반복문을 통해 같은 열에서 동일한 숫자가 있으면 그 위치(2개의 좌표)를 받고, 간격을 알아낸다.
2. 같은 간격의 아래쪽에 있는 좌표를 탐색해 그 숫자 또한 동일하면 max를 신규로 갱신한다. (신규 > max 일 경우)
- 첫 번째 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
M = list(map(int, input().split()))
arr = []
max = 1
for i in range(M[0]):
arr.append(list(map(int, list(input()))))
for i in range(M[0]):
for j in range(M[1]):
for k in range(M[1] - j - 1):
num = arr[i][j]
if num == arr[i][j+k+1] :
a = k+1
if (i+a >= M[0]):
break
else:
if (arr[i+a][j] == num) & (arr[i+a][j+a] == num):
tmp = (a+1)**2
if tmp > max:
max = tmp
print(max)
|
cs |