मान लीजिए हमारे पास costs नामक एक सरणी है जिसमें n तत्व हैं, जहां costs[i] ith आइसक्रीम बार की कीमत सिक्कों में है। हमारे पास शुरू में c सिक्के हैं खर्च करने के लिए, और हम जितना संभव हो उतने आइसक्रीम बार खरीदना चाहते हैं। हमें c सिक्कों से खरीदे जा सकने वाले आइसक्रीम बार की अधिकतम संख्या ढूंढनी है।
उदाहरण के लिए, यदि इनपुट है costs = [3,1,4,5,2], c = 10, तो आउटपुट 4 होगा क्योंकि हम इंडेक्स 0,1,2,4 पर आइसक्रीम बार खरीद सकते हैं जिसकी कुल कीमत 3 + 1 + 4 + 2 = 10 है।
समाधान दृष्टिकोण
इस समस्या को हल करने के लिए हम निम्न चरणों का पालन करेंगे:
सूची costs को सॉर्ट करें
i := 0
जब तक i < costs का आकार और c >= costs[i], तब तक
c := c - costs[i]
i := i+1
i लौटाएं
उदाहरण
बेहतर समझ के लिए निम्न कार्यान्वयन देखें:
def solve(costs, c):
costs.sort()
i=0
while(i < len(costs) and c >= costs[i]):
c = c-costs[i]
i=i+1
return i
costs = [3,1,4,5,2]
c = 10
print(solve(costs, c))इनपुट
[3,1,4,5,2], 10
आउटपुट
4