반응형

문제 출처 :


https://www.acmicpc.net/problem/2740



알고리즘 분석 :


문제 해결에 필요한 사항

1. 행렬 곱셈


쉽지만, 행렬의 곱셈 기본 방식을 익혀두고, 추후에 Matrix 문제를 풀기 위해 기록해 두려한다.


행렬의 곱셈은 3중 포문으로 해결이 가능하다.


참고로,

n*m행렬과 t*k행렬이 주어진다면 이 행렬이 곱해지기 위한 전제 조건은 m == t여야하고, 

최종적으로 나타나는 행렬은 n*k이다.






소스 코드 : 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include <cstdio>
 
using namespace std;
 
int a[102][102], b[102][102], c[102][102];
int main()
{
    int n1, m1;
    scanf("%d %d"&n1, &m1);
 
    for (int i = 0; i < n1; i++)
        for (int j = 0; j < m1; j++)
            scanf("%d"&a[i][j]);
 
    int n2, m2;
    scanf("%d %d"&n2, &m2);
 
    for (int i = 0; i < n2; i++)
        for (int j = 0; j < m2; j++)
            scanf("%d"&b[i][j]);
 
    int cnt = 0;
    for (int i = 0; i < n1; i++)
        for (int j = 0; j < m2; j++)
            for (int m = 0; m < n2; m++)
                c[i][j] += a[i][m] * b[m][j];
 
    for (int i = 0; i < n1; i++)
    {
        for (int j = 0; j < m2; j++)
            printf("%d ", c[i][j]);
        printf("\n");
    }
 
    return 0;
}
 
//                                                       This source code Copyright belongs to Crocus
//                                                        If you want to see more? click here >>
Crocus


반응형

'Applied > 알고리즘 문제풀이' 카테고리의 다른 글

[11003번] 최소값 찾기  (0) 2017.04.17
[1966번] 프린터 큐  (0) 2017.04.17
[14492번] 부울행렬의 부울곱  (0) 2017.04.17
[1560번] 비숍  (0) 2017.04.16
[2570번] 비숍2  (0) 2017.04.16