Open kimTH65 opened 1 year ago
using System;
using System.Linq;
using System.Collections.Generic;
public class Program
{
public static void Main()
{
int result = 1;
string[] input_n = Console.ReadLine().Split();
int[] N = Array.ConvertAll(input_n, s => int.Parse(s));
int[,] arr = new int[N[0]+1,N[1]+1];
int max_length = N.Min();
for (int i = 1; i <= N[0]; i++){
string Line = Console.ReadLine();
char[] C = Line.ToCharArray();
int[] L = Array.ConvertAll(C, s => (int)Char.GetNumericValue(s));
for (int j = 0; j < N[1]; j++){
arr[i,j+1] = L[j];
}
}
for(int i = 0; i < max_length; i++){
for(int j = 1; j <= N[0]-i; j++){
for(int f = 1; f <= N[1]-i; f++){
if(arr[j,f] == arr[j,f+i] && arr[j,f+i] == arr[j+i,f] && arr[j+i,f] == arr[j+i,f+i]){
result = (i+1)*(i+1);
}
}
}
}
Console.WriteLine(result);
}
}
백준 1051번 : 숫자 정사각형
문제
N×M크기의 직사각형이 있다. 각 칸에는 한 자리 숫자가 적혀 있다. 이 직사각형에서 꼭짓점에 쓰여 있는 수가 모두 같은 가장 큰 정사각형을 찾는 프로그램을 작성하시오. 이때, 정사각형은 행 또는 열에 평행해야 한다.
입력
첫째 줄에 N과 M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 수가 주어진다.
출력
첫째 줄에 정답 정사각형의 크기를 출력한다.