দুটি বন্ধু আমল এবং বিমল একটি সর্টেড তালিকা nums দিয়ে গেম খেলছে। একটি টার্নে আমল তিনটি সংখ্যা বেছে নেয়। বিমল 그중 একটা মুছে ফেলে, তারপর আমল 그중 একটা মুছে ফেলে। তালিকাটি বিষম সংখ্যক উপাদান দিয়ে শুরু হয়। আমল চায় টার্নের সংখ্যা ন্যূনতম করে তালিকায় কোনো পুনরাবৃত্ত উপাদান না থাকা অবস্থায় আনা, বিমল চায় টার্নের সংখ্যা সর্বোচ্চ করা। যদি উভয়ই অপ্টিমালি খেলে, তবে কতটি টার্ন লাগবে সেটি খুঁজে বের করতে হবে।
উদাহরণস্বরূপ, nums = [1, 1, 2, 3, 3, 3, 4] হলে আউটপুট হবে ২।
সমাধানের ধাপসমূহ
- repeats := 0
- i = 1 থেকে nums-এর আকার পর্যন্ত,
- যদি nums[i] == nums[i-1], তবে
- repeats := repeats + 1
- যদি nums[i] == nums[i-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