ধরুন, আমাদেরকে একটি m x n গ্রিড বক্স দেওয়া হয়েছে, যেখানে প্রতিটি ঘরে একটি বোর্ড রয়েছে যা হয় উপরের-ডান থেকে নীচে-বাম, বা উপরের-বাম থেকে নীচে-ডানে অবস্থান করে। এখন উপরের কক্ষগুলি থেকে, একটি বল বাক্সে রাখা হয় এবং সেই বলটি বাক্সের নীচে পৌঁছেছে কিনা তা আমাদের পরীক্ষা করতে হবে৷ গ্রিডটি একটি ম্যাট্রিক্স হিসাবে দেওয়া হয়েছে৷ যদি একটি ঘর 1 চিহ্নিত করা হয় তবে তির্যক বোর্ডটি উপরের-বাম থেকে নীচে-ডানদিকে বিস্তৃত হয়; যদি এটি চিহ্নিত করা হয় -1 এটি উপরের-ডান থেকে নীচে-বাম কোণে বিস্তৃত হয়। যদি n বলগুলিকে বক্সে রাখা হয়, তাহলে আমাদের খুঁজে বের করতে হবে কতটি বল নীচে পৌঁছেছে।
3x3 গ্রিড বক্সের উদাহরণ।
সুতরাং, যদি ইনপুট ম্যাট =
এর মত হয়1 | 1 | 1 | -1 |
-1 | 1 | 1 | -1 |
1 | -1 | -1 | 1 |
1 | -1 | 1 | -1 |
তাহলে আউটপুট হবে [-1, -1, -1, -1]
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
i :=মাদুরে সারির সংখ্যা
-
j :=ম্যাটে কলামের সংখ্যা
-
res :=একটি নতুন তালিকা
-
0 থেকে j রেঞ্জের ভ্যালের জন্য, করুন
-
x :=ভ্যাল
-
0 থেকে i রেঞ্জের r জন্য, করুন
-
s :=mat[r, x]
-
x :=x + mat[r, x]
-
যদি x <0 বা x>=j বা mat[r, x] s এর মত না হয়, তাহলে
-
res এর শেষে উপাদান -1 যোগ করুন
-
লুপ থেকে বেরিয়ে আসুন
-
-
-
অন্যথায়,
-
res এর শেষে x যোগ করুন
-
-
-
রিটার্ন রিটার্ন
উদাহরণ
আসুন আরও ভালভাবে বোঝার জন্য নিম্নলিখিত বাস্তবায়ন দেখি
def সমাধান(mat):i, j =মানচিত্র(len, (mat, mat[0])) res =[] রেঞ্জে val এর জন্য (j):x =val রেঞ্জে (i):s =মাদুর +=[x] রিটার্ন রিপ্রিন্ট(সল্ভ([[1, 1, 1, -1], [-1, 1, 1, -1], [1, -1, -1, 1],[1, - 1, 1, -1] ]))
ইনপুট
<প্রে>[[1, 1, 1, -1], [-1, 1, 1, -1], [1, -1, -1, 1], [1, -1, 1, -1]আউটপুট
[-1, -1, -1, -1]