プログラマー:カーペット




私の草

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ではありません)
  • 任意の高さ値を和で割った場合、残りは0になります.つまり、矩形を構成できるかどうかを判断します!
  • yellowの幅は常に枠2の値を除いており,yellowの高さも枠2を除いた値であることを考慮してyellowの個数を推定し,与えられたyellowの値と比較して正解を見出す.