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

পাইথনে k অপারেশন পর পর সর্বনিম্ন সম্ভাব্য সর্বোচ্চ মান বের করার প্রোগ্রাম


মান লক্ষ্য করুন আমাদের কাছে একটি সংখ্যার তালিকা nums এবং অন্য একটি মান k আছে। এখন একটি অপারেশন বিবেচনা করুন যেখানে আমরা তালিকার যেকোনো এলিমেন্ট থেকে ১ বিয়োগ করতে পারি। আমরা এই অপারেশনটি k বার সম্পাদন করতে পারি। k সংখ্যক এমন অপারেশন করার পর তালিকায় থাকা সর্বনিম্ন সম্ভাব্য সর্বোচ্চ মান খুঁজে বের করতে হবে।

উদাহরণস্বরূপ, যদি ইনপুট হয় nums = [3, 4, 6, 5] এবং k = 6, তবে আউটপুট হবে 3, কারণ আমরা ৪ কে একবার, ৬ কে তিনবার এবং ৫ কে দুবার কমিয়ে [3,3,3,3] পেতে পারি।

সমাধানের ধাপসমূহ:
  • সংখ্যাগুলোকে রিভার্স অর্ডারে সর্ট করুন।
  • i := 0
  • curr := nums[0]
  • k > 0 হলে নিচের লুপ চালান:
    • i < len(nums) এবং nums[i] == curr হলে i := i + 1 করুন।
    • যদি k >= i হয়, তবে:
      • k := k - i
      • curr := curr - 1
    • অন্যথায়, curr রিটার্ন করুন।
  • curr রিটার্ন করুন।
উদাহরণ কোড
class Solution:
    def solve(self, nums, k):
        nums.sort(reverse=True)
        i = 0
        curr = nums[0]
        while k > 0:
            while i < len(nums) and nums[i] == curr:
                i += 1
            if k >= i:
                k -= i
                curr -= 1
            else:
                return curr
        return curr

ob = Solution()
nums = [3, 4, 6, 5]
k = 6
print(ob.solve(nums, k))
ইনপুট
[3, 4, 6, 5], 6
আউটপুট
3
  1. পাইথনে রঙ মার্জ করলে অবশিষ্ট ন্যূনতম রঙের সংখ্যা বের করার প্রোগ্রাম

  2. পাইথনে N কে 1 এ রিডিউস করার সর্বোচ্চ অপারেশন সংখ্যা বের করা

  3. পাইথন প্রোগ্রাম ডিকশনারিতে দ্বিতীয় সর্বোচ্চ মান বের করা

  4. পাইথনে লিস্টে সর্বোচ্চ ও ন্যূনতম উপাদানের পজিশন বের করার প্রোগ্রাম