কম্পিউটার

পাইথনে k দিনের মধ্যে স্কাইডাইভারদের জন্য প্রয়োজনীয় ন্যূনতম স্পেস প্লেন খুঁজে বের করার প্রোগ্রাম


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

সুতরাং, যদি ইনপুটটি nums =[16, 12, 18, 11, 13], k =3 এর মত হয়, তাহলে আউটপুট হবে 28, কারণ 28-ব্যক্তি বিমান প্রদত্ত অনুরোধগুলিকে [16, 12], [ 18], [11, 13]।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • সংখ্যা খালি হলে, তারপর
    • রিটার্ন 0
  • শুরু :=সংখ্যার সর্বাধিক, শেষ :=সংখ্যার সমস্ত উপাদানের যোগফল
  • শুরু করার সময় <শেষ করুন, করুন
    • মধ্য :=(শুরু + শেষ) / 2
    • দিন :=1, তাপমাত্রা :=0
    • প্রতিটি সংখ্যার জন্য, করুন
      • যদি temp + num> mid হয়, তাহলে
        • দিন :=দিন + 1
        • temp :=num
      • অন্যথায়,
        • temp :=temp + num
    • যদি দিন> k, তারপর
      • শুরু :=মধ্য + 1
    • অন্যথায়,
      • শেষ :=মধ্য
  • প্রত্যাবর্তন শুরু

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

শ্রেণির সমাধান:def solve(self, nums, k):সংখ্যা না হলে:0 start, end =max(nums), sum(nums) শুরু করার সময়  mid:days +=1 temp =num else:temp +=num if days> k:start =mid + 1 else:end =mid return startob =সমাধান ()সংখ্যা =[16, 12, 18, 11, 13]k =3মুদ্রণ(ob.solve(nums, k))

ইনপুট

<প্রে>[16, 12, 18, 11, 13], 3

আউটপুট

28

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

  2. ন্যূনতম সংখ্যক বাস খুঁজে বের করার প্রোগ্রামটি পাইথনের সমস্ত স্টপের মধ্য দিয়ে যেতে হবে

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

  4. সংখ্যার ন্যূনতম যোগফল নির্ণয়ের জন্য পাইথন প্রোগ্রাম