📖 문제
🧑🏻💻 풀이 과정
1) 문제 이해 및 접근
가장 큰 정사각형을 찾아야하므로 초기에 변의 길이를 가장 길게 시작하여 줄여가며 정답을 찾았습니다.
2) 알고리즘
- 구현
3) 풀이 코드
사용 언어 - Python
import sys
sys.stdin = open('input.txt')
N, M = map(int, sys.stdin.readline().split()) # 행, 열
square = [list(sys.stdin.readline().rstrip()) for _ in range(N)] # 입력으로 받은 사각형
answer = min(N, M) # 정사각형이므로 열과 행 중 짧은 변의 길이를 구함
end = False # 정답을 찾았는지 유무
while not end:
for i in range(N-answer+1): # 왼쪽 위에서부터 오른쪽 아래로 좌표를 탐색
for j in range(M-answer+1):
if square[i][j] == square[i+answer-1][j] ==\
square[i][j+answer-1] ==square[i+answer-1][j+answer-1]: # 네개의 꼭짓점의 값이 같다면
end = True # 종료
break
if end:
break
else:
answer -= 1
print(answer**2) # 출력
📝 결과 및 학습한 내용
1) 어려웠던 내용
특별히 없습니다.
2) 새롭게 학습한 내용
특별히 없습니다.
🔗 문제 링크
- https://www.acmicpc.net/problem/1051
※ 오류 및 오타, 다른 의견이 있는 경우 댓글을 남겨주시면 감사하겠습니다
'알고리즘 문제풀이 > Python' 카테고리의 다른 글
[프로그래머스] 양궁대회 (0) | 2022.03.14 |
---|---|
[백준] 2644 촌수계산 (0) | 2022.03.13 |
[프로그래머스] 괄호 변환 (0) | 2022.03.10 |
[백준] 1774 우주신과의 교감 (0) | 2022.03.09 |
[백준] 12015 가장 긴 증가하는 부분 수열 2 (0) | 2022.03.08 |
댓글