কম্পিউটার টিউটোরিয়াল

পাইথনে স্কাইডাইভারদের জন্য ন্যূনতম প্লেন ক্ষমতা বের করার প্রোগ্রাম


গোষ্ঠীর আকারের তালিকা nums এবং দিন সংখ্যা k দেওয়া আছে। প্রতিদিন একবার প্লেন উড়াতে হয়। সকল গোষ্ঠী k দিনের মধ্যে পূরণ করার জন্য ন্যূনতম প্লেন ক্ষমতা বের করুন।

উদাহরণ: nums = [16,12,18,11,13], k=3 → আউটপুট ২৮ (গোষ্ঠী: [16,12], [18], [11,13])।

সমাধানের ধাপগুলো:

  • বাইনারি সার্চ: start = max(nums), end = sum(nums)।
  • মিড قدرত্যে k দিনে কভার হয় কিনা চেক করুন।
  • অনুযায়ী start বা end আপডেট করুন।
  • start রিটার্ন করুন।

উদাহরণ

class Solution:
    def solve(self, nums, k):
        if not nums:
            return 0
        start, end = max(nums), sum(nums)
        while start < end:
            mid = (start + end) // 2
            days = 1
            temp = 0
            for num in nums:
                if temp + num > mid:
                    days += 1
                    temp = num
                else:
                    temp += num
            if days > k:
                start = mid + 1
            else:
                end = mid
        return start

ob = Solution()
nums = [16, 12, 18, 11, 13]
k = 3
print(ob.solve(nums, k))

ইনপুট

[16, 12, 18, 11, 13], 3

আউটপুট

28
  1. পাইথনে তালিকার উপাদান সমান করার জন্য ন্যূনতম মোট খরচ খুঁজে বের করার প্রোগ্রাম

  2. পাইথনে সব বাস স্টপ পাস করার জন্য ন্যূনতম বাসের সংখ্যা বের করার প্রোগ্রাম

  3. পাইথনে একটি সংখ্যাকে অন্য সংখ্যায় রূপান্তর করার ন্যূনতম অপারেশন বের করার প্রোগ্রাম

  4. পাইথনে একটি সংখ্যার গুণনীয়গুলোর ন্যূনতম যোগফল বের করার প্রোগ্রাম