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

পাইথনে ভিন্ন নোট দিয়ে কাস্টমার কিউ সার্ভ করা সম্ভব কিনা তা যাচাই করা

মান লিজিয়ে আমাদের একটি অ্যারে notes আছে যা কাস্টমার কিউ-এ থাকা মানুষের রুপি নোটগুলো রিপ্রেজেন্ট করে। সবাই ৫০ টাকার টিকেট কিনতে অপেক্ষা করছে। এখানে সম্ভব নোটগুলো হল [৫০, ১০০ এবং ২০০]। আমাদের যাচাই করতে হবে ক্রমাবর্ধমানভাবে টিকেট বेचা সম্ভব কিনা, প্রাথমিকভাবে আমাদের হাতে ০ টাকা আছে।

যেমন, ইনপুট যদি notes = [50, 50, 100, 100] হয়, তবে আউটপুট হবে True কারণ প্রথম দুজনকে চেঞ্জ দরকার নেই, কিন্তু এখন আমাদের কাছে দুইটি ৫০ টাকার নোট আছে। তাই পরের দুজনকে ৫০ টাকা করে চেঞ্জ দিয়ে সব টিকেট ক্রম অনুযায়ী বेचা সম্ভব।

সমাধানের ধাপসমূহ

  • freq := একটি খালি ম্যাপ
  • i := 0
  • যখন i < notes-এর সাইজ, করুন:
    • যদি notes[i] ৫০ সমান হয়, তবে:
      • freq[50] := freq[50] + 1
    • অন্যথায় যখন notes[i] ১০০ সমান হয়, তবে:
      • freq[100] := freq[100] + 1
      • যদি freq[50] ০ হয়, তবে:
        • লুপ থেকে বের হোন
      • freq[50] := freq[50] - 1
    • অন্যথায়:
      • যদি freq[100] > 0 এবং freq[50] > 0 হয়, তবে:
        • freq[100] := freq[100] - 1
        • freq[50] := freq[50] - 1
      • অন্যথায় যখন freq[50] >= 3 হয়, তবে:
        • freq[50] := freq[50] - 3
      • অন্যথায়:
        • লুপ থেকে বের হোন
    • i := i + 1
  • যদি i notes-এর সাইজ সমান হয়, তবে:
    • True রিটার্ন করুন
  • False রিটার্ন করুন

উদাহরণ

বेहतर বোঝার জন্য নিচের বাস্তবায়নটি দেখুন:

from collections import defaultdict
def solve(notes):
    freq = defaultdict(int)
    i = 0
    while i < len(notes):
        if notes[i] == 50:
            freq[50] += 1
        elif notes[i] == 100:
            freq[100] += 1
            if freq[50] == 0:
                break
            freq[50] -= 1
        else:
            if freq[100] > 0 and freq[50] > 0:
                freq[100] -= 1
                freq[50] -= 1
            elif freq[50] >= 3:
                freq[50] -= 3
            else:
                break
        i += 1
    if i == len(notes):
        return True
    return False

notes = [50, 50, 100, 100]
print(solve(notes))

ইনপুট

[50, 50, 100, 100]

আউটপুট

True
  1. পাইথনে মাল্টিথ্রেডেড কিউ বাস্তবায়ন কীভাবে করবেন

  2. পাইথনে বিভিন্ন চার্ট দিয়ে ডেটা ভিজ্যুয়ালাইজেশন

  3. পাইথনে ফাইলটি টার্মিনালের সাথে কানেক্টেড কিনা চেক করার পদ্ধতি

  4. পাইথনে স্ট্রিং কোন সাবস্ট্রিং দিয়ে শুরু হয়েছে কিনা যাচাই করা