ধরুন আমাদের কাছে কাজের একটি তালিকা এবং মানুষের আরেকটি তালিকা আছে। কার্যগুলি [i] ith কার্য সম্পাদনের জন্য প্রয়োজনীয় শক্তির পরিমাণ নির্ধারণ করে। এবং জনগণ [i] ব্যক্তির শক্তির পরিমাণ নির্ধারণ করে। পরিশেষে, একজন ব্যক্তি সর্বাধিক একটি কাজ সম্পাদন করতে পারলে কতগুলি কাজ শেষ করা যাবে তা আমাদের খুঁজে বের করতে হবে।
সুতরাং, যদি ইনপুটটি টাস্ক =[4, 3, 9, 15], মানুষ =[10, 5, 3, 2] এর মতো হয়, তাহলে আউটপুট হবে 3, যেমন প্রথম ব্যক্তি 9 টাস্ক সম্পাদন করতে পারে, দ্বিতীয় ব্যক্তি করতে পারে টাস্ক 4 সম্পাদন করুন, তৃতীয় ব্যক্তি টাস্ক 3 সম্পাদন করতে পারবেন এবং চতুর্থ ব্যক্তি কোন কাজ সম্পাদন করতে পারবেন না৷
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- লিস্টের কাজগুলো সাজান, তালিকার লোকদের সাজান
- ct:=0, ind:=0
- মানুষের আকার 0 থেকে সীমার মধ্যে,
- করুন
- j এর জন্য পরিসীমা ind থেকে কাজের আকার, করুন
- যদি মানুষ[i]>=টাস্ক[j], তাহলে
- ct :=ct + 1
- ind :=ind + 1
- লুপ থেকে বেরিয়ে আসুন
- অন্যথায়,
- লুপ থেকে বেরিয়ে আসুন
- যদি মানুষ[i]>=টাস্ক[j], তাহলে
- j এর জন্য পরিসীমা ind থেকে কাজের আকার, করুন
- সিটি ফেরত দিন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution: def solve(self, tasks, people): tasks.sort() people.sort() ct=0 ind=0 for i in range(len(people)): for j in range(ind,len(tasks)): if people[i]>=tasks[j]: ct+=1 ind+=1 break else: break return ct ob = Solution() tasks = [4, 3, 9, 15] people = [10, 5, 3, 2] print(ob.solve(tasks, people))
ইনপুট
[4, 3, 9, 15], [10, 5, 3, 2]
আউটপুট
3