1. 문제
2. 해결방법
- 완전 탐색을 이용했다 ! N,M은 50보다 작거나 같은 자연수이다. 그럼 N*M정사각형 좌표 하나씩을 다 탐색해봤자 25000~
완전 탐색을 하기엔 충분한 숫자라고 판단했다.
- 우선 사각형을 2중 리스트로 입력받는다.
- k(사각형 길이 탐색) 변수를 두고 i,j(사각형 좌표)에서 (i, j) , (i,j+k) , (i+k, j), (i+k, j+k)가 같은 k를 탐색한다.
- 가장 큰 k로 계속 side 갱신 !!
3. 코드
n,m = map(int,input().split())
square = [list(input()) for _ in range(n)]
side = 0
for k in range(min(n, m), 0, -1):
for i in range(n-k):
for j in range(m-k):
if square[i][j] == square[i][j+k] == square[i+k][j] == square[i+k][j+k]:
side = max(side,k+1)
if side !=0:
print((side)**2)
else:
print(1)
아직 코드가 마무리까지 부드럽진 않은 것 같다! 계속 문제로 연습해야겠다 ..
'Koala - 10기 > 코딩테스트 준비 스터디' 카테고리의 다른 글
[백준/C++] 10974번 모든 순열 (0) | 2023.03.10 |
---|---|
[백준/C++] 9663 : N-Queen (0) | 2023.03.10 |
[Programmers/Python] 단어 변환 (0) | 2023.03.06 |
[백준/python] 1895번 : 필터 (0) | 2023.03.06 |
10기 코딩테스트 스터디 출석부 (0) | 2023.03.04 |