[Programmers][python] 19. クイズ練習(8):プログラマーの最大値を作成する
2682 ワード
誤りに対する批判、質問、討論を歓迎します.自由にコメントを残しておきましょう!!
同じ長さの配列A,Bが2つある.各配列は自然数で構成されている.
アレイA,Bからそれぞれ1つの数字を抽出し,2つの数字を乗算する.これらのプロシージャを繰り返す長さは、アレイの長さであり、2つの数の値が加算されます.目標は、最終的に蓄積された値を最小限に抑えることです.(各配列からk番目の数字が抽出された場合、次は再抽出できません.)
例えば、A=[1,4,2]、B=[5,4,4,4]の場合、 Aの1番目の数字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
I/O例#1
問題の例.
I/O例#2
Aの最初の数字1、Bの2番目の数字4に乗算します.(積算値:4)Aの2番目の数字2,Bの1番目の数字3を乗じます.(積算値:4+6=10)
10を返します.この場合が最も小さいからです.
最終的に累積された値が最小である場合、リスト
したがって、
この記事は、プログラマーアカデミー人工知能Defcosコースで学んだ内容をもとにまとめたものです.
プログラマ-最高価格の作成
問題の説明
同じ長さの配列A,Bが2つある.各配列は自然数で構成されている.
アレイA,Bからそれぞれ1つの数字を抽出し,2つの数字を乗算する.これらのプロシージャを繰り返す長さは、アレイの長さであり、2つの数の値が加算されます.目標は、最終的に蓄積された値を最小限に抑えることです.(各配列からk番目の数字が抽出された場合、次は再抽出できません.)
例えば、A=[1,4,2]、B=[5,4,4,4]の場合、
配列A,Bが与えられると,最終的に蓄積された最大値を返すソルバが完了する.
せいげんじょうけん
I/O例
ABanswer[1, 4, 2][5, 4, 4]29[1,2][3,4]10
I/O例説明
I/O例#1
問題の例.
I/O例#2
Aの最初の数字1、Bの2番目の数字4に乗算します.(積算値:4)Aの2番目の数字2,Bの1番目の数字3を乗じます.(積算値:4+6=10)
10を返します.この場合が最も小さいからです.
の意見を打診
最終的に累積された値が最小である場合、リスト
A
の小さい値と、リストB
の大きい値との積は最小である.したがって、
A
は昇順、B
は降順で並べ替えられ、各要素を乗じて蓄積される.Code (Python)
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
この記事は、プログラマーアカデミー人工知能Defcosコースで学んだ内容をもとにまとめたものです.
Reference
この問題について([Programmers][python] 19. クイズ練習(8):プログラマーの最大値を作成する), 我々は、より多くの情報をここで見つけました https://velog.io/@illstandtall/Programmerspython-19.-문제풀이-실습-8-프로그래머스-최솟값-만들기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol