কম্পিউটার

পাইথনে লাভ ধরে রেখে এবং বিক্রি করে আমরা সর্বোচ্চ মুনাফা অর্জন করতে পারি এমন প্রোগ্রাম


ধরুন আমাদের কাছে সংখ্যা নামক সংখ্যার একটি তালিকা রয়েছে, যা কালানুক্রমিক ক্রমে একটি কোম্পানির স্টক মূল্যের প্রতিনিধিত্ব করছে। আমরা প্রতিদিন সর্বাধিক একটি শেয়ার কিনতে পারি, কিন্তু আপনি একাধিক স্টক ধরে রাখতে পারেন এবং যে কোনো দিনে স্টক বিক্রি করতে পারেন। আপনি যে সর্বোচ্চ মুনাফা অর্জন করতে পারেন তা ফেরত দিন।

সুতরাং, যদি ইনপুটটি সংখ্যার মত হয় =[3, 4, 7, 3, 5], তাহলে আউটপুট হবে 9, কারণ আমরা 3 এবং 4 এ স্টক কিনতে পারি এবং 7 এ বিক্রি করতে পারি। তারপর আবার 3 এ কিনুন এবং 5 এ বিক্রি করুন। মোট লাভ (7 - 3) + (7 - 4) + (5 - 3) =9।

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

  • উত্তর :=0
  • সংখ্যা খালি না থাকলেও করুন
    • টপ :=সংখ্যা থেকে শেষ উপাদান মুছে দিন
    • সংখ্যা খালি না থাকলে এবং উপরের> সংখ্যার শেষ উপাদান, কর
      • উত্তর :=উত্তর + (সংখ্যা থেকে শীর্ষ - শেষ উপাদান)
      • সংখ্যা থেকে শেষ উপাদান মুছুন
  • উত্তর ফেরত দিন

উদাহরণ

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

def solve(nums):
   ans = 0
   while nums:
      top = nums.pop()
      while nums and top > nums[-1]:
         ans += top - nums.pop()

   return ans

nums = [3, 4, 7, 3, 5]
print(solve(nums))

ইনপুট

[3, 4, 7, 3, 5]

আউটপুট

9

  1. পাইথনে ফি দিয়ে স্টক ক্রয়-বিক্রয় করে সর্বাধিক মুনাফা পেতে পারি?

  2. পাইথনে সংলগ্ন সাবয়ারের সর্বাধিক পণ্য খুঁজে বের করার প্রোগ্রাম

  3. পাইথনে একবার স্টক মার্কেটে কেনার মাধ্যমে আমরা সর্বাধিক লাভ পেতে পারি তা খুঁজে বের করার প্রোগ্রাম

  4. স্ট্রিংয়ের সংখ্যা খুঁজে বের করার জন্য প্রোগ্রাম আমরা তৈরি করতে পারি যেখানে 'a' 'a' বা 'b' হতে পারে এবং 'b' পাইথনে 'b' থাকে