मान लीजिए कि हमारे पास तीन संख्याएँ हैं। कार्य इन सभी संख्याओं को '0' बनाने के लिए इष्टतम चरणों की कुल संख्या की गणना करना है।
उदाहरण के लिए
इनपुट-1:
a = 4 b = 4 c = 6
आउटपुट:
7
स्पष्टीकरण:
सभी संख्याओं को '0' बनाने के लिए इष्टतम चरणों की कुल संख्या है,
(4, 4, 6)
पहली और दूसरी संख्या से '1' हटाना =(3, 3, 6)
पहली और तीसरी संख्या से '1' हटाना =(2, 3, 5)
पहली और तीसरी संख्या से '1' हटाना =(1 ,3, 4)
पहली और तीसरी संख्या से '1' हटाना =(0,3,3)
दूसरे और तीसरे नंबर से '1' हटाना =(0,2, 2)
दूसरे और तीसरे नंबर से '1' हटाना =(0, 1, 1)
दूसरे और तीसरे नंबर से '1' हटाना =(0, 0, 0)
इस प्रकार, सभी संख्याओं को शून्य करने के चरणों की कुल संख्या '7' है
इस समस्या को हल करने का तरीका
इस विशेष समस्या को हल करने के लिए, हम किन्हीं दो संख्याओं में से '1' को इस प्रकार हटा देंगे कि इन दोनों संख्याओं का योग अंतिम संख्या से अधिक हो। इसे शून्य करने के लिए न्यूनतम चरणों को खोजने के लिए, हम चरणों की न्यूनतम संख्या की गणना करेंगे।
- इनपुट के रूप में तीन नंबर लें।
- संख्याओं को क्रमबद्ध करें . का उपयोग करके बढ़ते क्रम में क्रमित करें
- जांचें कि क्या दो संख्याओं का योग तीसरी संख्या से कम है, तो राशि लौटा दें।
- चूंकि हर बार, हम किन्हीं दो संख्याओं में से '1' को हटा रहे हैं, इसलिए सभी संख्याओं को '0' बनाने में (n1+n2+n3)/2 चरण लगेंगे।
उदाहरण
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))
उपरोक्त कोड को चलाने से आउटपुट इस प्रकार उत्पन्न होगा,
आउटपुट
7
दिए गए इनपुट के लिए a=4, b=4 और c=6, सभी संख्याओं को '0' बनाने में सात कदम लगेंगे। इसलिए, प्रोग्राम आउटपुट के रूप में 7 लौटाता है।