ascode 1215 특별한 전치행렬 구하기

1 분 소요

문제 설명

Matrix M이 주어질 때 Matrix M의 전치행렬을 구하여라. M의 전치행렬 MT의 원소 mT[i][j]는 m의 원소인 m[j][i]이다. 만약 행과 열의 크기가 같고 M과 MT의 대응되는 모든 원소값이 같은 경우에는 Identical 이라고만 출력한다.


예를 들어


1 2 3
4 5 6
의 전치행렬은


1 4
2 5
3 6
이다.

입력 설명

첫 줄에 테스트케이스의 수 T가 주어진다.
각 테스트케이스에 대해 행렬 M의 크기 a(높이), b(폭)(1 <= a, b <= 10)가 주어지고 그 다음 줄부터 행렬 M의 원소가 a x b 갯수만큼 입력된다. Matrix의 원소는 0 이상 100 이하의 자연수이다.

출력 설명

각 테스트케이스에 대해 주어진 행렬 M의 전치행렬 MT을 출력한다. 만약 가로, 세로의 크기가 같을 경우에는 M 그대로 출력한다.

입력 예시

2
2 3
1 2 3
4 5 6
3 3
1 2 1
2 1 3
1 3 1

출력 예시

1 4
2 5
3 6
1 2 1
2 1 3
1 3 1

코드

#include <stdio.h>

int main() {
    int a, b, c, j, i, arr[11][11], ar[11][11];
    scanf("%d", &a);
    for (int v = 0; v < a; v++)
    {
        scanf("%d %d", &b, &c);
        for (j = 0; j < b; j++)
        {
            for (int i = 0; i < c; i++)
            {
                scanf("%d", &arr[j][i]);
                ar[j][i] = arr[j][i];
            }
        }
        if (b == c) {
            for (j = 0; j < c; j++)
            {
                for (i = 0; i < b; i++)
                {
                    printf("%d ", arr[j][i]);
                }
                printf("\n");
            }
        }else {
            for (j = 0; j < c; j++)
            {
                for (i = 0; i < b; i++)
                {
                    printf("%d ", ar[i][j]);
                }
                printf("\n");
            }
        }
    }
}

나 : say

dma

댓글남기기