Code Kata#10の最大面積を得る
3704 ワード
💁 もんだいぶんせき
パラメータheightは数値からなる配列です.グラフィックで表すと、y軸の値であり、高さの値があります.
[1,8,6,2,5,4,8,3,7]を下図に示します.
そのグラフに水があるとき、水を入れることができる最大面積の値を返してください.
家庭
配列の長さは2より大きい.
https://storage.googleapis.com/replit/images/1555380144403_97221ca23fbb92beaae5b6c800ceb5c8.pn
問題を見ると難しいと思いましたが、「烈音」の親切な説明で、やっと無理に問題を理解しました.まず,インデックスでxの長さを求め,2つの要素の値を比較し,小さい値をy値に設定することを考える.
次に、この2つの値を乗算し、配列にすべての場合の数値を入れ、最大の値を返します.
🙈 マイコード
結果は大成功…!しかし二重for文を書いたのは少し申し訳なくて、他の答えを聞いても良い方法が見えません.しかし、それを並べないで、最初から何でも発表して解決する方法もあります.
コッド・カタは2週目に成功裏に終わることができて、気持ちがいいです!:)
パラメータheightは数値からなる配列です.グラフィックで表すと、y軸の値であり、高さの値があります.
[1,8,6,2,5,4,8,3,7]を下図に示します.
そのグラフに水があるとき、水を入れることができる最大面積の値を返してください.
家庭
配列の長さは2より大きい.
https://storage.googleapis.com/replit/images/1555380144403_97221ca23fbb92beaae5b6c800ceb5c8.pn
問題を見ると難しいと思いましたが、「烈音」の親切な説明で、やっと無理に問題を理解しました.まず,インデックスでxの長さを求め,2つの要素の値を比較し,小さい値をy値に設定することを考える.
次に、この2つの値を乗算し、配列にすべての場合の数値を入れ、最大の値を返します.
🙈 マイコード
function getMaxArea(height) {
//1.인덱스 값이 가장 차이가 크고
// 2. 인자들간의 차이가 가장 클때 최대값 달성...
let arr = []
let newArr=[]
for (let i = 0; i < height.length; i++){
for(let j=1; j<height.length; j++){
let x = j-i
let y = Math.min(height[i], height[j])
newArr.push(x*y)
}
}
return Math.max(...newArr)
}
今回はほぼ15分で解けるくらいで、とても気持ちが良かったです.前回過半数を見つけて以来、これが一番よく解決された問題のようです...!結果は大成功…!しかし二重for文を書いたのは少し申し訳なくて、他の答えを聞いても良い方法が見えません.しかし、それを並べないで、最初から何でも発表して解決する方法もあります.
コッド・カタは2週目に成功裏に終わることができて、気持ちがいいです!:)
Reference
この問題について(Code Kata#10の最大面積を得る), 我々は、より多くの情報をここで見つけました https://velog.io/@somangoi/Code-Kata-10テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol