Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 다른 방식(왼쪽에서 오른쪽으로, 오른쪽에서 왼쪽으로)으로 행렬 인쇄


이 문제에서는 2D 배열이 제공됩니다. 우리의 임무는 배열의 모든 요소를 ​​첫 번째 행에서 시작하여 왼쪽에서 오른쪽으로, 다음 행에서는 오른쪽에서 왼쪽으로, 그리고 다시 왼쪽에서 오른쪽으로 계속해서 인쇄하는 것입니다.

문제를 이해하기 위해 예를 들어보겠습니다.

Input: array = {
   {2, 5}
   {4, 9}
}
Output: 2 5 9 4

이 문제를 해결하기 위해 행의 지정된 방향(LtoR 및 RtoL)으로 요소를 인쇄합니다. 그리고 인쇄 방향을 나타내는 플래그 요소는 반복할 때마다 전환됩니다.

시간 복잡도 =O(R*C)인 쉽고 효율적인 솔루션입니다.

예시

솔루션 구현을 보여주는 프로그램

#include<iostream>
using namespace std;
#define R 3
#define C 3
void printAlternateMatrix(int arr[R][C]) {
   bool direction = true;
   for (int i=0; i<R; i++){
      if (direction){
         for (int j=0; j<C; j++)
            printf("%d ", arr[i][j]);
      } else{
         for (int j=C-1; j>=0; j--)
            printf("%d ",arr[i][j]);
      }
      direction = !direction;
   }
}
int main() {
   int arr[][C] = {
      { 23 , 50 , 4 },
      { 89 , 9 , 34 },
      { 75 , 1 , 61 },
   };
   cout<<"Matrix in alternate order is :\n";
   printAlternateMatrix(arr);
   return 0;
}

출력

대체 순서의 행렬은 -

23 50 4 34 9 89 75 1 61