1051번: 숫자 정사각형

Memo


어려웠던 점

문제 평가

Code


제출 날짜

2021/03/03

메모리

2020KB

시간

0ms

#include <iostream>
#include <vector>

int N, M;
int ans;
std::vector<std::string> sq;

void input_faster()
{
	std::ios_base::sync_with_stdio(false);
	std::cin.tie(0);
	std::cout.tie(0);
}

void input()
{
	input_faster();
	std::cin >> N >> M;
	sq.resize(N);
	for (size_t i = 0 ; i < N ; i++)
		std::cin >> sq[i];
	ans = 0;
}

int find_sq(int sq_size)
{
	for (int i = 0 ; i < N ; i++)
	{
		if (i + sq_size >= N)
			break;
		for (int j = 0 ; j < M ; j++)
		{
			if (j + sq_size >= M)
				break;
			if (sq[i][j] == sq[i + sq_size][j]&& sq[i][j] == sq[i][j + sq_size] && sq[i][j] == sq[i+sq_size][j+sq_size])
				return (1);
		}

	}
	return (0);
}

void solve()
{
	int i = 0;
	while (i <= N && i <= M)
	{
		if(find_sq(i))
			ans = (i + 1) * (i + 1);
		i++;
	}
}

void print_val()
{
	std::cout << ans;
}

int main()
{
	input();
	solve();
	print_val();
	return (0);
}