[Programmers][python] 16. 練習問題練習(5):プログラマー予算起動


誤りに対する批判、質問、討論を歓迎します.自由にコメントを残しておきましょう!!

プログラマ-予算調達


問題の説明


S社は各部門が物品を購入するのに必要な金額を調査し、各部門が必要とする物品をサポートした.ただし、予算が完全であるため、すべての部門の製品を購入することはできません.だから私はあなたにできるだけ多くの部門の品物を購入させたいです.
物品を購入する場合、各部門が申請した金額に基づいてすべてのサポートを提供しなければならない.例えば、1000元を申請する部門は、1000元未満のサポートを正確に提供し、1000元未満のサポートを提供しなければならない.
各部門に申請金額を含む配列dと予算予算がパラメータとしてある場合は、最大何部門までサポートできるかを返すソルバを完了します.

せいげんじょうけん

  • dは部門別申請金額の配列であり、長さ(部門全体の数)は1または100以上である.
  • dの各要素は各部門の申請金額を表し、各部門の申請金額は1以上100000以下の自然数である.
  • 予算は予算を代表し、自然数は1万を超えない.
  • を購入できる部門数の最低価格を返してください.
  • I/O例


    dbudgetresult[1,3,2,5,4]93[2,2,3,3]104

    I/O例説明

  • I/O例1
    各部門は[1元,3元,2元,5元,4元]の金額を報告した.1元、2元、4元の部門の物品を申請する場合、予算は9元から7元で、残りは2元です.正しい申請金額に常に従ってサポートする必要があります.残りの2元は他の部門にサポートされません.上記の方法に加えて、次のこともできます.
    -1元、2元、3元の部門の物品を申請するには6元が必要です.
    -1元、2元、5元の部門の物品を申請するには8元が必要です.
    -1元、3元、4元の部門の物品を申請するには8元が必要です.
    -1元、3元、5元の部門の物品を申請するには9元が必要です.
    3つ以上の部門の品物を購入することはできません.そのため、最大3つの部門の品物を購入することができます.
  • I/O例#2
    すべての部門の品物を買ってくれれば、10元です.そのため、最大4つの部門の品物を購入することができます.

    の意見を打診


  • 入力の大きさは大きくないので、簡単にアクセスするだけです.

  • サポートされる部門を最大化するには、予算の低い部門からサポートを開始する必要があるため、ソートを使用します.

  • 各部門の申請履歴dをソートし、最大予算を超えずにサポートします.
  • Code (Python)

    def solution(d, budget):
        answer, sum = 0, 0
        d.sort()
        for i in d:
            if sum + i <= budget:
                answer += 1
                sum += i
        return answer

    この記事は、プログラマーアカデミー人工知能Defcosコースで学んだ内容をもとにまとめたものです.