ধরি, তিনটি সংখ্যা আছে। টাস্ক হলো এই তিনটি সংখ্যাকে '০' করার জন্য মোট অপ্টিমাল স্টেপ গণনা করা।
উদাহরণ-১:
ইনপুট-১:
a = 4 b = 4 c = 6
আউটপুট:
7
ব্যাখ্যা:
সকল সংখ্যা '০' করার মোট অপ্টিমাল স্টেপ:
(4, 4, 6) ১ম ও ২য় নম্বর থেকে '১' বাদ দিলে = (3, 3, 6) ১ম ও ৩য় নম্বর থেকে '১' বাদ দিলে = (2, 3, 5) ১ম ও ৩য় নম্বর থেকে '১' বাদ দিলে = (1, 3, 4) ১ম ও ৩য় নম্বর থেকে '১' বাদ দিলে = (0, 3, 3) ২য় ও ৩য় নম্বর থেকে '১' বাদ দিলে = (0, 2, 2) ২য় ও ৩য় নম্বর থেকে '১' বাদ দিলে = (0, 1, 1) ২য় ও ৩য় নম্বর থেকে '১' বাদ দিলে = (0, 0, 0) অতএব, সকল সংখ্যা শূন্য করার মোট স্টেপ = '৭'
সমস্যা সমাধানের পদ্ধতি
এই সমস্যা সমাধান করতে যেকোনো দুটি নম্বর থেকে '১' বাদ দিতে হবে যেন যেন সেই দুটি নম্বরের যোগফল তৃতীয় নম্বর থেকে বড় হয়। মিনিমাম স্টেপ বের করতে মিনিমাম স্টেপ ক্যালকুলেট করতে হবে।
তিনটি সংখ্যা ইনপুট হিসেবে নিন।
sort ব্যবহার করে সংখ্যাগুলো ক্রমবর্ধমান ক্রমে সর্ট করুন।
যদি দুটি সংখ্যার যোগফল তৃতীয় সংখ্যা থেকে ছোট হয়, তবে যোগফল রিটার্ন করুন।
যেহেতু প্রতিবার যেকোনো দুটি নম্বর থেকে '১' বাদ দেওয়া হয়, তাই (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-এর জন্য সকল সংখ্যা '০' করতে সাতটি স্টেপ লাগবে। তাই প্রোগ্রাম ৭ রিটার্ন করবে।