[プログラマー]カーペット


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

質問する


Leoはじゅうたんを買いに行きました.格子じゅうたんの列が見えました.真ん中は黄色で、一列は茶色で、下図のように見えます.
Leoは家に帰ってから、さっき見たじゅうたんの黄色と茶色の格子数を覚えたが、じゅうたん全体の大きさは覚えていない.
Leoがこのカーペットに茶色の格子の数茶色、黄色の格子の数黄色をパラメータとして与えた場合、カーペットの横方向と縦方向の寸法を順番に並べて返します.

に近づく


黄色いタイルの縦横の組み合わせを繰り返し文で求めます.黄色タイルの組み合わせでは、(横方向+2)X 2+縦方向X 2が茶色タイルの数と一致することを確保する.一致する場合は、水平+2と垂直+2を戻り配列にプッシュします.

に答える

function solution(brown, yellow) {
    // 노란색 타일의 가로 세로 조합을 구한다.
    // 노란색 타일 조합 중,
    // (가로 + 2)*2 + 세로*2가 갈색타일의 수와 일치하는지 확인
    var answer = [];
    
    for(let i = yellow; i > 0; i--){
        if(!(yellow % i)){
            let width = i;
            let height = yellow / i;
            
            if((width + 2) * 2 + height * 2 === brown){
                answer.push(width + 2);
                answer.push(height + 2);
                break;
            }
        }
    }
    return answer;
}