카펫의 높이는 최소 3부터 시작해야된다.
왜냐면 높이가 3미만이면 브라운 타일로만 이루어진 가장자리를 만들 수 없다.
전체 타일수를 i로 나누었을 때 나머지가 0이면 일단 성립한다.
그 중 중앙의 옐로 타일 영역은 너비 -2 와 높이 -2 의 곱이다.
이 값이 yellow 타일 수와 같으면 정답을 찾은것 이므로 반복문을 중단한다.
class Solution {
public int[] solution(int brown, int yellow) {
int total = brown + yellow;
int width = 0;
int height = 0;
for(int i = 3; i <= total/3; i++) {
if(total % i == 0) {
height = i;
width = total / i;
if((width-2) * (height-2) == yellow) {
break;
}
}
}
return new int[] {width, height};
}
}