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

পাইথনে ফাইনাল রাউন্ডে জয় করতে পারা স্বিমার সংখ্যা বের করা

প্রতিযোগিতার কারেন্ট স্কোর লিস্ট nums দেওয়া আছে। ফাইনাল রাউন্ডে ১ম স্থান পাবে n পয়েন্ট, ২য়ে n-1, ইত্যাদি। কতজন স্বিমার এখনও জয় করতে পারে (টাই হলে ও জয় মনে হবে)।

ইনপুট উদাহরণ

nums = [9, 6, 11, 12]

আউটপুট: 3 (স্কোর ৯, ১১, ১২ वाले জয় করতে পারে)

অ্যালগরিদম

  1. লিস্ট সর্ট করুন।
  2. উল্টা দিয়ে ট্রাভার্স করুন: cand = nums[i] + n - i (সর্বোচ্চ সম্ভাব্য ফাইনাল স্কোর)।
  3. ম্যাক্সিমাম cand = a (জয়ের থ্রেশহোল্ড)।
  4. যাদের x + n >= a তারা জয় করতে পারে।

পাইথন কোড

def solve(nums):
    if not nums:
        return 0
    n = len(nums)
    ans = 0
    nums.sort()
    a = 0
    for i in range(n-1, -1, -1):
        cand = nums[i] + n - i
        if cand > a:
            a = cand
    for x in nums:
        if x + n >= a:
            ans += 1
    return ans

# টেস্ট
print(solve([9, 6, 11, 12]))  # 3

ব্যাখ্যা

সর্টেড লিস্টে সর্বোচ্চ সম্ভাব্য স্কোর বের করে থ্রেশহোল্ড সেট করা হয়। এর ওপর বা সমান যারা পৌঁছাতে পারে তারা কান্ডিডেট।

  1. পাইথনে ব্লক কতবার কভার হয়েছে তা গণনা করার প্রোগ্রাম

  2. গোডাউনে কতগুলো বক্স রাখা যায় তা বের করার পাইথন প্রোগ্রাম

  3. পাইথনে ম্যাট্রিক্সে ঘিরা দ্বীপের সংখ্যা গণনা করার প্রোগ্রাম

  4. পাইথনে ট্রিকে দুটি ট্রিতে ভাগ করার পদ্ধতির সংখ্যা খুঁজে বের করার প্রোগ্রাম