[プログラマーlv.2]カーペットby JS
✉ Question
🔗 質問リンク
問題の説明
Leoはじゅうたんを買いに行きました.格子じゅうたんの列が見えました.真ん中は黄色で、一列は茶色で、下図のように見えます.
Leoは家に帰ってから、さっき見たじゅうたんの黄色と茶色の格子数を覚えたが、じゅうたん全体の大きさは覚えていない.
Leoがこのカーペットに茶色の格子の数茶色、黄色の格子の数黄色をパラメータとして与えた場合、カーペットの横方向と縦方向の寸法を順番に並べて返します.
せいげんじょうけん
💌 Answer
完全ナビゲーションの問題
正解が見つかるまで、最大横長yellow의 개수 + 2
の方法で長さを短くします.
まず[가로 + 세로]
値と[가로 * 세로]
値を共通変数とする二次方程式を導出し,次に街を未知数とする二次方程式を解いたが,複雑すぎるのでコード整理を行う!😂function solution(brown, yellow) {
const answer = [];
let width = 0;
let height = 0;
for(let i = yellow; i > 0; i--) {
if(getWidth(brown, yellow, i)) {
width = i + 2;
height = (brown + yellow) / width;
break;
}
}
answer.push(width);
answer.push(height);
return answer;
}
function getWidth(brown, yellow, width) {
return (width + 2) * (width + 2) - (brown + 4) * (width + 2) / 2 + (brown + yellow) === 0 ? true : false;
}
Reference
この問題について([プログラマーlv.2]カーペットby JS), 我々は、より多くの情報をここで見つけました
https://velog.io/@young18/프로그래머스-카펫-by-JS
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
function solution(brown, yellow) {
const answer = [];
let width = 0;
let height = 0;
for(let i = yellow; i > 0; i--) {
if(getWidth(brown, yellow, i)) {
width = i + 2;
height = (brown + yellow) / width;
break;
}
}
answer.push(width);
answer.push(height);
return answer;
}
function getWidth(brown, yellow, width) {
return (width + 2) * (width + 2) - (brown + 4) * (width + 2) / 2 + (brown + yellow) === 0 ? true : false;
}
Reference
この問題について([プログラマーlv.2]カーペットby JS), 我々は、より多くの情報をここで見つけました https://velog.io/@young18/프로그래머스-카펫-by-JSテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol