# 문제
# 입력 및 출력
# 풀이
정사각형 최대 한 변의 길이(len) = min(N, M)
len이 1이 될 때까지 len 길이를 줄여가면서 가장 큰 사각형을 찾음
#include <iostream>
using namespace std;
int sq[50][50];
int N, M, len;
void input() {
char c;
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
cin >> c;
sq[i][j] = c - 48;
}
}
}
bool check(int x, int y) {
bool c = true;
if (sq[x][y] != sq[x][y + len]) c = false;
if (sq[x][y] != sq[x + len][y]) c = false;
if (sq[x][y] != sq[x + len][y + len]) c = false;
return c;
}
int main() {
cin >> N >> M;
input();
len = N < M ? N : M;
while (--len) {
for (int i = 0; i < N - len; i++) {
for (int j = 0; j < M - len; j++) {
if (check(i, j)) {
cout << (len + 1)*(len + 1) << "\n";
return 0;
}
}
}
}
cout << 1 << "\n";
return 0;
}
'Algorithm > 📖Baekjoon' 카테고리의 다른 글
#11403 경로 찾기 (0) | 2022.06.25 |
---|---|
#1004 어린 왕자 (0) | 2022.06.24 |
#1074 Z (0) | 2022.06.22 |
#1080 행렬 (0) | 2022.06.21 |
#2512 예산 (0) | 2022.06.19 |
댓글