[220212] TIL
1.情報処理技術者のメモを学ぶプログラミング言語の使用
1)サーバプログラムの実施
2)プログラミング言語を使用する 2.コセット
卒業プレゼント(完全探求)
質問:学生たちはそれぞれプレゼントの価格、配送費をメモして、先生は限られた予算で、できるだけ多くの学生にプレゼントを買いたいと思っています.先生はギフト券を持っていて、半額でプレゼントを買うことができます.(運賃X)最大学生数を印刷します.(2 D配列)
悩ましいところ
-先物価格と運賃を加算した金額を昇順にソートしたいのですが、仮配列に加算してソートすると半額先物価格の金額を差し引くことはできません.これを行うには、2 D配列をソートする必要がありますが、私は方法を知りません.
-プレゼントの値段が一番高いのは半額ですか.一つずつ試してみますか.sum変数の一つを半額に減らして、次のプレゼントが買えるまで、だめなら一番高いものを除いて...呜呜呜呜...私は二中の文だと知っていますが、変数は書いても削除しても、書いても削除しても......要するに言い尽くせない困難だ.最后にやはり懐に抱くことができませんでした...先生解答
-商品価格、配送料を加算した価格を昇順にソートします.(sort内蔵関数を使用)
->2 D配列のsort関数のソート方法を理解しました.
-一番高い商品の価格を半減する必要はありません.すべての状況は試しなければならない. 感じ
探求しにくい
1)サーバプログラムの実施
2)プログラミング言語を使用する
卒業プレゼント(完全探求)
質問:学生たちはそれぞれプレゼントの価格、配送費をメモして、先生は限られた予算で、できるだけ多くの学生にプレゼントを買いたいと思っています.先生はギフト券を持っていて、半額でプレゼントを買うことができます.(運賃X)最大学生数を印刷します.(2 D配列)
悩ましいところ
-先物価格と運賃を加算した金額を昇順にソートしたいのですが、仮配列に加算してソートすると半額先物価格の金額を差し引くことはできません.これを行うには、2 D配列をソートする必要がありますが、私は方法を知りません.
-商品価格、配送料を加算した価格を昇順にソートします.(sort内蔵関数を使用)
->2 D配列のsort関数のソート方法を理解しました.
-一番高い商品の価格を半減する必要はありません.すべての状況は試しなければならない.
function solution(m, product){
let answer=0;
let n=product.length;
product.sort((a, b) => (a[0]+a[1])-(b[0]+b[1]));
for(let i=0; i<n; i++){
let money=m-(product[i][0]/2+product[i][1]);
let cnt=1;
for(let j=0; j<n; j++){
if(j!==i && (product[j][0]+product[j][1])>money) break;
if(j!==i && (product[j][0]+product[j][1])<=money) {
money-=(product[j][0]+product[j][1]);
cnt++;
}
}
answer=Math.max(answer, cnt);
}
return answer;
}
let arr=[[6, 6], [2, 2], [4, 3], [4, 5], [10, 3]];
console.log(solution(28, arr));
探求しにくい
Reference
この問題について([220212] TIL), 我々は、より多くの情報をここで見つけました https://velog.io/@saiani1/220212-TILテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol