public int[] solution(int brown, int yellow)
{
int[] answer = new int[] { };
List<Tuple<int,int>> list = new List<Tuple<int,int>>(); // 사각형이 될 수 있는 조건 목록
int all = brown + yellow; // 전체 타일 숫자
for (int i = 2; i < all / 2; i++) // 어차피 가로 긴거로 고정이라 절반 까지만 순회해도 필요 약수 목록은 다 구해짐
{
if(all%i == 0) // 약수 목록
{
Tuple<int, int> t = new Tuple<int, int>( all / i, i );
list.Add(t);
}
}
for (int i = 0; i < list.Count; i++)
{
Tuple<int, int> t = list[i];
int x = t.Item1;
int y = t.Item2;
if((x - 2) * (y -2) == yellow) // 가로 세로 양 옆 2씩 뺀 = 노랑 타일로 만들 수 있는 바닥
{
answer = new int[] { y, x };
}
}
return answer;
}