ascode 1115 전치행렬 구하기

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
이다.

입력 설명

첫 줄에 Test Case의 수 T가 주어진다.
각 Test Case에 Matrix M의 크기 a, b(1 <= a, b <= 10)가 주어지고 그 다음 줄부터 Matrix a×b 크기의 Matrix가 입력된다. Matrix의 원소는 100보다 작은 자연수이다.

출력 설명

각 Test Case에 대해 주어진 Matrix M의 전치행렬 MT을 출력한다. 만약 M과 MT가 같을 경우에는 Identical 이라고만 출력한다.

입력 예시

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
Identical

코드

#include <stdio.h>

int main() {
    int a,b,c,j,i,arr[11][11], ar[11][11], result = 0;
    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];
            }
        }
        for (j = 0; j < b; j++)
        {
            for ( i = 0; i < c; i++)
            {
                if (arr[j][i] == ar[i][j]) {
                    result++;
                }
            }
        }
        if (b * c == result) {
            printf("Identical\n");
            result = 0;
        }
        else {
            for (j = 0; j < c; j++)
            {
                for ( i = 0; i < b; i++)
                {
                    printf("%d ", ar[i][j]);
                }
                printf("\n");
            }
            result = 0;
        }
    }
}
 

나 : say

저건 스파케티 코드란다.

댓글남기기