✍ 나의 풀이
function solution(brown, yellow) {
var answer = [];
let sum = brown + yellow;
for(let height=3; height <= brown; height++){
if(sum % height === 0){
let width = sum / height;
if((width-2) * (height-2) === yellow){
return [width, height]
}
}
}
return answer;
}
- for문 조건: 높이값은 최소 3이상이라는 점과 주어진 brown개수를 넘어설 수 없다는 점을 고려!
(높이의 최대값이 brown이 될 수는 없지만,,)
- 임의의 높이값으로 sum을 나눴을 때 나머지가 0. 즉, 사각형을 구성할 수 있는지 판별!
- yellow의 너비는 항상 테두리 2를 뺀 값이고, yellow의 높이 역시 테두리 2를 뺀 값임을 고려해 yellow의 개수를 유추해내고, 주어진 yellow의 값과 비교해 정답을 찾아낸다.