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

পাইথনে পুনরাবৃত্ত ইন্টিজার ডিলিট গেম জয় করার জন্য মুভের সংখ্যা খুঁজে বের করার প্রোগ্রাম


দুটি বন্ধু আমল এবং বিমল একটি সর্টেড তালিকা nums দিয়ে গেম খেলছে। একটি টার্নে আমল তিনটি সংখ্যা বেছে নেয়। বিমল 그중 একটা মুছে ফেলে, তারপর আমল 그중 একটা মুছে ফেলে। তালিকাটি বিষম সংখ্যক উপাদান দিয়ে শুরু হয়। আমল চায় টার্নের সংখ্যা ন্যূনতম করে তালিকায় কোনো পুনরাবৃত্ত উপাদান না থাকা অবস্থায় আনা, বিমল চায় টার্নের সংখ্যা সর্বোচ্চ করা। যদি উভয়ই অপ্টিমালি খেলে, তবে কতটি টার্ন লাগবে সেটি খুঁজে বের করতে হবে।

উদাহরণস্বরূপ, nums = [1, 1, 2, 3, 3, 3, 4] হলে আউটপুট হবে ২।

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

  • repeats := 0
  • i = 1 থেকে nums-এর আকার পর্যন্ত,
    • যদি nums[i] == nums[i-1], তবে
      • repeats := repeats + 1
  • (repeats + 1) // 2 ফেরত দিন

উদাহরণ

class Solution:
    def solve(self, nums):
        repeats = 0
        for i in range(1, len(nums)):
            if nums[i] == nums[i-1]:
                repeats += 1
        return (repeats + 1) // 2

ob = Solution()
nums = [1, 1, 2, 3, 3, 3, 4]
print(ob.solve(nums))

ইনপুট

[1, 1, 2, 3, 3, 3, 4]

আউটপুট

2
  1. একটি ইন্টিজারের স্মলেস্ট ডিভাইজার (সর্বনিম্ন ভাজক) খুঁজে বের করার পাইথন প্রোগ্রাম

  2. পাইথনে ফিনিশ লাইন পৌঁছানোর জন্য न्यूनতম মুভ সংখ্যা বের করার প্রোগ্রাম

  3. পাইথনে আকার k-এর স্ট্রিক্টলি ইনক্রিজিং সাবসিকোয়েন্সের সংখ্যা গণনা করার প্রোগ্রাম

  4. পাইথনে লিস্ট থেকে সর্বোচ্চ সংখ্যা বের করা