মান ল করুন weights নামের একটি সংখ্যার তালিকা যা মানুষের ওজন বোঝায় এবং limit মানটি একটি রকেটশিপের ওজন লিমিট নির্ধারণ করে। প্রতিটি রকেটশিপ hoogstens দুইজন নিতে পারে। সবাইকে গ্রহে রেসকিউ করার জন্য ন্যূনতম কতটি রকেটশিপ লাগবে তা খুঁজে বের করতে হবে।
যদি ইনপুট হয় weights = [300, 400, 300], limit = 600, তবে আউটপুট হবে ২, কারণ ৩০০ ওজনের দুজন এক রকেটশিপে যাবে এবং ৪০০ ওজনের জনটির জন্য আরেকটি লাগবে।
এটি সমাধান করতে আমরা নিম্নলিখিত ধাপগুলি অনুসরণ করব:
weights তালিকাটি সাজান।
cnt := 0
যখন weights খালি না হয়:
x := weights-র শেষ উপাদানটি মুছে ফেলুন।
যদি weights খালি না থাকে এবং weights[0] <= limit - x হয়, তবে weights-র প্রথম উপাদানটি মুছে ফেলুন।
cnt := cnt + 1
cnt ফেরত দিন।
বेहतर বোঝার জন্য নিচের ইমপ্লিমেন্টেশনটি দেখুন:
উদাহরণ (পাইথন)
class Solution: def solve(self, weights, limit): weights.sort() cnt = 0 while weights: x = weights.pop() if weights and weights[0] <= limit - x: weights.pop(0) cnt += 1 return cnt ob = Solution() weights = [300, 400, 300] limit = 600 print(ob.solve(weights, limit))
ইনপুট
[300, 400, 300], 600
আউটপুট
2