মনে করুন n নামক একটি সংখ্যা স্ট্রিং ফরম্যাটে আছে। আমাদের ন্যূনতম কতগুলো ডেসি-বাইনারি সংখ্যা দরকার যাতে তাদের যোগফল n-র সমান হয়। একটি ডেসি-বাইনারি সংখ্যা হলো একটি দশমিক সংখ্যা যের ডিজিটগুলো শুধু ০ বা ১।
যেমন, ইনপুট n = "132" হলে, আউটপুট হবে ৩ কারণ 132 = 10 + 11 + 111 (তিনটি ডেসি-বাইনারি সংখ্যা)।
সমাধান পদ্ধতি
এই সমস্যাটি সমাধান করতে নিচের ধাপগুলো অনুসরণ করুন:
- result := 1
- n-এ থাকা প্রতিটি i-এর জন্য
- যদি i {0,1}-এ না থাকে, তবে
- result := max(result, int(i))
- যদি i {0,1}-এ না থাকে, তবে
- result রিটার্ন করুন
উদাহরণ
নিচের ইমপ্লিমেন্টেশনটি দেখুন আরও ভালো বোঝার জন্য:
def solve(n): result = 1 for i in n: if i not in {0,1}: result = max(result, int(i)) return result n = "132" print(solve(n))ইনপুট
132
আউটপুট
3