ধরুন একটি লেমনেড স্ট্যান্ড আছে, প্রতিটি লেমনেডের দাম $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 এর সমান, তখন
- মিথ্যে ফেরত দিন
- যদি আমি 5 এর সমান হয়, তাহলে
- সত্য ফেরান
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
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