Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다.
Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요.
// brown + yellow = (yellow_row + 2) * (yellow_col + 2)
function solution(brown, yellow) {
const answer = [];
for (let i = (brown + yellow); i > 1; i--) {
// brown, yellow의 약수 찾기
if ((brown + yellow) % i === 0) {
// col의 가능성이 있는 친구들 찾기
let col = (brown + yellow) / i + 2
// col은 이미 2를 더한 값이기 때문에 아래에서는 총 4를 빼준다.
if ((col - 4) * (i - 2) === yellow) {
// 큰 값이 row, 작은 값이 col
const max = Math.max(...[i, col - 2]);
const min = Math.min(...[i, col - 2]);
// 최종 정답
answer.push(max, min)
// 찾으면 멈춰준다
break;
}
}
}
return answer;
}