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

Python দিয়ে অ্যারে গেমের বিজয়ী বের করার প্রোগ্রাম


মান লাগিয়ে, আমাদের একটি অ্যারে arr আছে যেটিতে ইউনিক এলিমেন্ট আছে এবং আরেকটি মান k আছে। এখন একটি গেম বিবেচনা করুন যেখানে আমরা অ্যারের প্রথম দুটি এলিমেন্ট নেই। প্রতিটি টার্নে, arr[0] এবং arr[1] তুলনা করি, এবং বড় মানটি জয়ী হয় এবং পজিশন ০-এ থাকে এবং ছোট মানটি অ্যারের শেষে চলে যায়। এই গেমটি শেষ হবে যখন কোনো মান k বার egymায়নে জয়ী হয়। আমাদের অ্যারে থেকে বিজয়ী বের করতে হবে।

যেমন, ইনপুট arr = [1,5,6,3,4,2], k = 3 হলে, আউটপুট হবে 6 কারণ:

  • রাউন্ড ১, arr = [1,5,6,3,4,2], বিজয়ী 5, ৫-এর জয় কাউন্ট ১
  • রাউন্ড ২, arr = [5,6,3,4,2,1], বিজয়ী 6, ৬-এর জয় কাউন্ট ১
  • রাউন্ড ৩, arr = [6,3,4,2,1,5], বিজয়ী 6, ৬-এর জয় কাউন্ট ২
  • রাউন্ড ৪, arr = [6,4,2,1,5,3], বিজয়ী 6, ৬-এর জয় কাউন্ট ৩

তাই বিজয়ী 6 কারণ সে তিনবার জয়ী হয়েছে (k = 3)।

এটি সমাধান করতে আমরা নিচের ধাপগুলো অনুসরণ করব:

  • l := arr-এর আকার
  • prev := arr[0]
  • count := 0
  • i = 1 থেকে l - 1 পর্যন্ত:
    • যদি prev > arr[i] হয়, তবে count := count + 1
    • অন্যথায়, prev := arr[i], count := 1
    • যদি count == k হয়, তবে prev রিটার্ন করুন
  • prev রিটার্ন করুন

বेहतर বোঝার জন্য নিচের ইমপ্লিমেন্টেশন দেখুন:

উদাহরণ

def solve(arr, k):
    l = len(arr)
    prev = arr[0]
    count = 0
    for i in range(1, l):
        if prev > arr[i]:
            count+=1
        else:
            prev = arr[i]
            count = 1
        if count == k:
            return prev
    return prev
arr = [1,5,6,3,4,2]
k = 3
print(solve(arr, k))

ইনপুট

[1,5,6,3,4,2], 3

আউটপুট

6

  1. পাইথন প্রোগ্রামে অ্যারের যোগফল বের করা

  2. পাইথন প্রোগ্রাম অ্যারেতে সবচেয়ে বড় এলিমেন্ট বের করা

  3. অ্যারে-এ ইনভারশন কাউন্ট করার পাইথন প্রোগ্রাম

  4. পাইথনে অ্যারের যোগফল বের করা