এই সমস্যায়, আমাদের একটি 2-মাত্রিক ম্যাট্রিক্স দেওয়া হয়েছে। এবং আমাদের কাজ হল ম্যাট্রিক্সের উপাদানগুলিকে ঘড়ির কাঁটার বিপরীতে স্পাইরালে প্রিন্ট করা।
ঘড়ির কাঁটার বিপরীত দিকে সর্পিল ফর্ম − এটি একটি সর্পিল ট্রাভার্সাল যা উপরে-বাম থেকে শুরু হয় এবং ঘড়ির কাঁটার বিপরীত দিকে প্রথম নীচে-ডান-উপর-বাম দিকে যায়।
ঘড়ির কাঁটার বিপরীত দিকে ট্রাভার্সাল হবে 1 5 9 13 14 15 16 12 8 4 3 2 6 10 11 7৷
সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক
Input: 2 4 6 1 7 9 5 0 3 Output: 2 1 5 0 3 9 7
এই সমস্যাটি সমাধান করার জন্য, আমরা চারটি লুপ ব্যবহার করব এবং প্রতিটি এক দিক থেকে শুরু করব এবং তাদের দিকনির্দেশনা শুরু করব এবং সেই অনুযায়ী পথ অতিক্রম করব।
উদাহরণ
আমাদের সমাধানের বাস্তবায়ন দেখানোর জন্য প্রোগ্রাম
#include <bits/stdc++.h> using namespace std; #define R 3 #define C 3 void printCounterClockwiseSpiral(int m, int n, int matrix[R][C]){ int i, k = 0, l = 0; int count = 0; int total = m * n; while (k < m && l < n){ if (count == total) break; for (i = k; i < m; ++i){ cout<<matrix[i][l]<<" "; count++; } l++; if (count == total) break; for (i = l; i < n; ++i){ cout<<matrix[m - 1][i]<<" "; count++; } m--; if (count == total) break; if (k < m){ for (i = m - 1; i >= k; --i){ cout<<matrix[i][n - 1]<<" "; count++; } n--; } if (count == total) break; if (l < n){ for (i = n - 1; i >= l; --i){ cout<<matrix[k][i]<<" "; count++; } k++; } } } int main() { int mat[R][C] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9} }; cout<<"Conter Clockwise Spiral from of the matrix is :\n"; printCounterClockwiseSpiral(R, C, mat); return 0; }
আউটপুট
ম্যাট্রিক্স থেকে ঘড়ির কাঁটার বিপরীত দিকে সর্পিল হল −
1 4 7 8 9 6 3 2 5