プログラマレベル1-予算

1852 ワード

問題の説明


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

I/O例



これは各部門に必要な支援金額です.既定の予算に基づいて、最大でどれだけの部門を支援できるかを探さなければならない.
int solution(vector<int> d, int budget) {
    int answer = 0;
    int temp = 0;
    for(int i=0;i<d.size();i++)
    {
        for(int j=i+1;j<d.size();j++)
        {
            if(d[i]>d[j])
            {
                temp = d[j];
                d[j] = d[i];
                d[i] = temp;
            }
        }
    }
    
    for(int i=0;i<d.size();i++)
    {
        if(budget>=d[i])
        {
            budget -= d[i];
            answer++;
        }
    }
    
    return answer;
}
まず配列を昇順に並べ替えてから結果を探すと簡単に見つかります.
これからはもっと効果的に並べる方法を勉強します.