function solution(brown, yellow) {
const totalSpace = brown + yellow;
for(let i = Math.floor(totalSpace/3); i >= 3; i--) {
if(totalSpace % i) continue;
let width = i;
let height = totalSpace / i;
if((width - 2) * (height - 2) == yellow) {
return [width, height]
}
}
}
우선 노란색 격자는 1행 1열 이상을 차지하기 때문에 총 격자는 3열 3행 이상이어야한다.
그리고 구하려는 width와 height는 총격자 수의 약수들의 곱으로 이루어져야 한다.
width가 height보다 더 크다고 했으므로 width를 찾기위해 반복문을 역순으로 돌린다. width를 찾으면 height는 자동으로 찾아지고 width와 height에 각 -2를 해 준 값의 곱이 yellow격자 수와 같다면 정답이 도출된다.