プログラマ[レベル1]最小矩形
3835 ワード
質問する
名刺入れを作っている会社は財布の大きさを確認したいです.様々な形や大きさの名刺を収納でき、コンパクトで持ち運びに便利な財布を作る必要があります.これらの要件を満たすために、設計チームはすべての名刺の横方向と縦方向の長さを調査した.
次の表に、4種類の名刺の水平と垂直の長さを示します.

最も長い横長と縦長はそれぞれ80と70であるため、80(横)x 70(縦)サイズの財布を作成すると、すべての名刺を収容することができる.ただし、横に2番の名刺を収納する場合は、80(横)x 50(縦)サイズの財布ですべての名刺を収納できます.財布のサイズは4000(=80 x 50)です.
パラメータは、すべての名刺の水平と垂直の長さを表す2 D配列サイズです.すべての名刺を収納できる最小財布を作成する場合は、財布の大きさを返すための解関数を完了します.
せいげんじょうけん
I/O例

に答える
function solution(sizes) {
let n = sizes.length;
let table = sizes.map(e => e.sort((a,b) => b-a));
let row = table.map(e => e[0]); // 행만
let col = table.map(e => e[1]); // 열만
let answer = Math.max(...row) * Math.max(...col);
return answer;
}
各要素を降順で並べ替えた後、列と行に分けて、それぞれ最大値を求めます.ソートの原因は、問題が発生した横、縦の変化です.Reference
この問題について(プログラマ[レベル1]最小矩形), 我々は、より多くの情報をここで見つけました https://velog.io/@bkdragon0228/프로그래머스Level-1-최소직사각형テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol