본문 바로가기
Algorithm/📖Baekjoon

#1051 숫자 정사각형

by yewoneeee 2022. 6. 23.

# 문제

# 입력 및 출력

# 풀이

정사각형 최대 한 변의 길이(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

댓글