मान लीजिए हमारे पास तीन numbers हैं। Task है इन सभी numbers को '0' बनाने के लिए total optimal steps count करना।
उदाहरण के लिए
Input-1:
a = 4 b = 4 c = 6
Output:
7
व्याख्या:
सभी numbers को '0' बनाने के लिए total optimal steps की संख्या है:
(4, 4, 6)
1st और 2nd number से '1' remove करने पर = (3, 3, 6)
1st और 3rd number से '1' remove करने पर = (2, 3, 5)
1st और 3rd number से '1' remove करने पर = (1, 3, 4)
1st और 3rd number से '1' remove करने पर = (0, 3, 3)
2nd और 3rd number से '1' remove करने पर = (0, 2, 2)
2nd और 3rd number से '1' remove करने पर = (0, 1, 1)
2nd और 3rd number से '1' remove करने पर = (0, 0, 0)
इस प्रकार, सभी numbers को zero बनाने के लिए total steps '7' हैं
Problem हल करने का दृष्टिकोण
इस particular problem को हल करने के लिए, हम किन्हीं दो numbers से '1' remove करेंगे जैसे कि इन दो numbers का sum last वाले से greater हो। Minimum steps ज्ञात करने के लिए zero बनाने के लिए, हम minimum number of steps calculate करेंगे।
- तीन numbers को input के रूप में लें।
- sort का उपयोग करके numbers को increasing order में sort करें।
- Check करें यदि दो numbers का sum third number से कम है, तो sum return करें।
- चूंकि हर बार हम किन्हीं दो numbers से '1' remove कर रहे हैं, यह (n1+n2+n3)/2 steps लेगा सभी numbers को '0' बनाने के लिए।
उदाहरण
def maxScore(a: int, b: int, c: int):
a, b, c = sorted((a, b, c))
if a + b < c:
return a + b
return (a + b + c) // 2
a = 4
b = 4
c = 6
print(maxScore(a, b, c))
उपरोक्त code चलाने से output generate होगा:
आउटपुट
7
दिए गए inputs a=4, b=4 और c=6 के लिए, सभी numbers को '0' बनाने में seven steps लगेंगे। इसलिए, program 7 को output के रूप में return करता है।