মনে করুন n সংখ্যক প্রোগ্রামার একটি কনভেনশনে ঢুকতে চায়, এবং convention নামক একটি তালিকা আছে যেখানে ১ মানে প্রোগ্রামার, ০ মানে খালি জায়গা। শর্ত হল দুজন প্রোগ্রামার পাশাপাশি বসতে পারবে না। সব n প্রোগ্রামার ঢুকতে পারবে কিনা যাচাই করতে হবে।
উদাহরণস্বরূপ, n = 2, convention = [0, 0, 1, 0, 0, 0, 1] হলে আউটপুট True।
সমাধানের ধাপসমূহ
- i = 0 থেকে conv-এর আকার পর্যন্ত,
- a := 0 যদি i-1 < 0 অন্যথায় i-1
- b := conv-এর আকার-1 যদি i+1 >= conv-এর আকার অন্যথায় i+1
- যদি conv[i]==0 এবং conv[a]==0 এবং conv[b]==0, তবে
- conv[i] := 1
- n := n - 1
- True ফেরত দিন যদি n <= 0, অন্যথায় False
উদাহরণ
class Solution:
def solve(self, n, conv):
for i in range(len(conv)):
a=0 if i-1<0 else i-1
b=len(conv)-1 if i+1>=len(conv) else i+1
if conv[i]==0 and conv[a]==0 and conv[b]==0:
conv[i]=1
n-=1
return n<=0
ob = Solution()
n = 2
convention = [0, 0, 1, 0, 0, 0, 1]
print(ob.solve(n, convention))ইনপুট
2, [0, 0, 1, 0, 0, 0, 1]
আউটপুট
True