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

পাইথনে অ্যারের অর্ধেক এলিমেন্ট শূন্য করা সম্ভব কিনা যাচাই করা

ধরি আমাদের একটি পজিটিভ ইন্টিজারের লিস্ট আছে সাইজ n এবং অন্য একটি পজিটিভ ইন্টিজার m। প্রতিটি ইটারেশনে আমরা কিছু এলিমেন্ট ১ করে কমাই এবং বাকি এলিমেন্টগুলো m করে বাড়াই। আমাদের বের করতে হবে কি অর্ধেক বা অধিক এলিমেন্ট কিছু ইটারেশনের পর শূন্য হয়ে যাবে। সম্ভব হলে True, না হলে False রিটার্ন করুন।

উদাহরণস্বরূপ, input_list = [10, 18, 35, 5, 12], m = 4 হলে আউটপুট হবে True।

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

  • frequency_list := সাইজ m+1 একটি লিস্ট শূন্য দিয়ে ইনিশিয়ালাইজ
  • প্রতিটি এলিমেন্টের জন্য frequency_list[element % (m+1)] বাড়ান
  • যদি কোনো frequency_list[i] >= n/2 হয়, তবে true রিটার্ন করুন
  • অন্যথায় false রিটার্ন করুন

উদাহরণ

def solve(input_list, m):
    frequency_list = [0] * (m + 1)
    i = 0
    while i < len(input_list):
        frequency_list[(input_list[i] % (m + 1))] += 1
        i += 1
    i = 0
    while i <= m:
        if frequency_list[i] >= (len(input_list) / 2):
            break
        i += 1
    if i <= m:
        return True
    else:
        return False

input_list = [10, 18, 35, 5, 12]
print(solve(input_list, 4))

ইনপুট

[10, 18, 35, 5, 12], 4

আউটপুট

True
  1. পাইথনে অ্যারে-এর প্রতিটি k আকারের সেগমেন্টে একটি কী আছে কিনা চেক করুন

  2. পাইথনে অ্যারে-র উপাদানগুলো শূন্য হয়ে যাওয়ার শেষ ইনডেক্স খুঁজে বের করা

  3. পাইথনে সর্টেড অ্যারেতে মেজরিটি এলিমেন্ট যাচাই করা

  4. পাইথনে অ্যারে মনোটোনিক (Monotonic) কিনা চেক করা