[プログラマー]最高値/12941回/Python/PiSUNを作成


💡質問する


同じ長さの配列A,Bが2つある.各配列は自然数で構成されている.
アレイA,Bからそれぞれ1つの数字を抽出し,2つの数字を乗算する.これらのプロシージャを繰り返す長さは、アレイの長さであり、2つの数の値が加算されます.目標は、最終的に蓄積された値を最小限に抑えることです.(各配列からk番目の数字が抽出された場合、次は再抽出できません.)
例えば、A=[1,4,2]の場合、B=[5,4,4,4]
Aの最初の数字1、Bの2番目の数字5に乗算します.(積算値:0+5(1 x 5)=5)
Aの2番目の数字4、Bの3番目の数字4に乗算します.(積算値:5+16(4 x 4)=21)
Aの3番目の数字2、Bの1番目の数字4に乗算します.(積算値:21+8(2 x 4)=29)
すなわち、この場合、29が返される.
配列A,Bが与えられると,最終的に蓄積された最大値を返すソルバが完了する.

せいげんじょうけん

  • アレイA、Bサイズ:1000以下自然数
  • アレイA、Bの要素サイズ:1000以下の自然数
  • にゅうしゅつりょく


    ABanswer[1, 4, 2][5, 4, 4]29[1,2][3,4]10

    📖私が書いたコード

    def solution(A,B):
        answer = 0
        A.sort()
        B.sort(reverse=True)
        for i in range(len(A)):
            answer+=(A[i]*B[i])
        return answer
    質問元:https://programmers.co.kr/learn/courses/30/lessons/12941