본문 바로가기

프로그래밍/백준

1051 숫자 정사각형

1051 숫자 정사각형

 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
= 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+>= 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

 

 

'프로그래밍 > 백준' 카테고리의 다른 글

14890 경사로  (0) 2021.04.21
1015 수열정렬  (0) 2020.07.13