最小長方形[Level 1]Python


問題の説明


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

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

せいげんじょうけん

  • サイズの長さは1,000より大きい.
  • sizeの要素は[w,h]形式です.
  • wは名刺の横長を表す.
  • hは名刺の縦の長さを表す.
  • wおよびhは1000より大きい自然数である.
  • I/O例



    I/O例説明


    I/O例#1
    問題の例を以下に示します.
    I/O例#2
    名刺を適当に回して重ねると、3枚目の名刺(横:8、縦:15)が他のすべての名刺よりも大きくなります.そのため、財布の大きさは3枚目の名刺の大きさと同じで、120(=8 x 15)を返します.
    I/O例#3
    名刺が適切に回転して重なると、すべての名刺を含む最小財布サイズは133(=19 x 7)となる.
    コード#コード#
    def solution(sizes):
        # 준보님의 풀이
        first_length = [max(size) for size in sizes]
        second_length = [min(size) for size in sizes]
        return max(first_length) * max(second_length)