কম্পিউটার

পাইথনে লেমনেড পরিবর্তন


ধরুন একটি লেমনেড স্ট্যান্ড আছে, প্রতিটি লেমনেডের দাম $5। এখন গ্রাহকরা দোকান থেকে কেনার জন্য একটি লাইনে দাঁড়িয়ে আছে, এবং একবারে একটি অর্ডার করে৷

প্রতিটি গ্রাহক শুধুমাত্র একটি লেবুপাতা কিনতে পারেন এবং $5, $10, বা $20 বিল দিয়ে অর্থ প্রদান করতে পারেন। আমাদের অবশ্যই প্রতিটি গ্রাহককে সঠিক পরিবর্তন প্রদান করতে হবে, যাতে নেট লেনদেন হল গ্রাহক $5 প্রদান করে। এবং প্রথমে, আমাদের হাতে কোন পরিবর্তন নেই।

আমরা প্রতিটি গ্রাহককে সঠিক পরিবর্তন দিতে পারি কিনা তা আমাদের পরীক্ষা করতে হবে৷

সুতরাং, যদি ইনপুটটি [5,5,5,10,20] এর মত হয়, তাহলে আউটপুট হবে True, যেমন প্রথম 3 জন গ্রাহকের কাছ থেকে, আমরা ক্রমানুসারে তিনটি $5 বিল পেতে পারি। চতুর্থ থেকে, আমরা $10 বিল সংগ্রহ করি এবং $5 ফেরত দিই। তারপরে পঞ্চম গ্রাহকের কাছ থেকে, আমরা একটি $10 বিল এবং একটি $5 বিল দিই৷ যেহেতু সমস্ত গ্রাহকরা সঠিক পরিবর্তন পেয়েছেন, আমরা সত্য আউটপুট করি৷

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

  • n5 :=0, n10 :=0, n20 :=0
  • বিলে প্রতিটি i জন্য, করুন
    • যদি আমি 5 এর সমান হয়, তাহলে
      • n5 :=n5 + 1
    • অন্যথায় যখন আমি 10 এর সমান, তখন
      • n10 :=n10 + 1
    • অন্যথায় n20 :=n20 + 1
    • যদি বিলের আকার> 0 এবং n5 0 এর সমান হয়, তাহলে
      • মিথ্যে ফেরত দিন
    • যদি i 20 এবং n10> 0 এবং n5> 0 এর মত হয়, তাহলে
      • n10 :=n10 - 1
      • n5 :=n5 - 1
    • অন্যথায় যখন i 20 এবং n10 0 এবং n5 <3 এর সমান, তখন
      • মিথ্যে ফেরত দিন
    • অন্যথায় যখন i 20 এবং n10 একই 0 এবং n5>=3, তখন
      • n5 :=n5 -3
    • যদি i 10 এবং n5> 0 এর মত হয়, তাহলে
      • n5 :=n5 - 1
    • অন্যথায় যখন আমি 10 এর সমান এবং n5 0 এর সমান, তখন
      • মিথ্যে ফেরত দিন
  • সত্য ফেরান

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

উদাহরণ

class Solution:
   def lemonadeChange(self, bills):
      n5 = 0
      n10 = 0
      n20 = 0
      for i in bills:
         if i == 5:
            n5 += 1
         elif i == 10:
            n10 += 1
         else:
            n20 += 1
         if len(bills) > 0 and n5 == 0:
            return(False)
         if i == 20 and n10 > 0 and n5 > 0:
            n10 -= 1
            n5 -= 1
         elif i == 20 and n10 == 0 and n5 < 3:
            return(False)
         elif i == 20 and n10 == 0 and n5 >= 3:
            n5 = n5 -3
         if i == 10 and n5 > 0:
            n5 -= 1
         elif i == 10 and n5 == 0:
            return (False)
      return(True)
ob = Solution()
print(ob.lemonadeChange([5,5,5,10,20]))

ইনপুট

[5,5,5,10,20]

আউটপুট

True

  1. আমি কিভাবে Python Tkinter এ বোতামের আকার পরিবর্তন করব?

  2. কিভাবে matplotlib (পাইথন) ফন্ট পরিবর্তন করতে?

  3. মুদ্রা পরিবর্তনের জন্য পাইথন প্রোগ্রাম

  4. issuperset() পাইথনে