728x90
0. [c++] 백준 - |
https://www.acmicpc.net/problem/2740
1. 풀이 |
행렬의 기초에 근거하여 구현해 보았다.
2. 소스코드 |
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 41 42 43 | #include<iostream> using namespace std; const int MAX_INT = 100; int matrixA[MAX_INT][MAX_INT]; int matrixB[MAX_INT][MAX_INT]; int matrixRet[MAX_INT][MAX_INT]; void matrixMultiplication(int aColumn, int aRow, int bColumn, int bRow) { //세로부분(행에 해당한다.) for (int i = 0; i < aColumn; i++) { //가로부분(열에 해당하고, 두개를 반복하는 이유는 (m*n) X (n*k)의 결과는 (m*K)의 행렬이 되기 때문이다. for (int j = 0; j < bRow; j++) { for (int k = 0; k < aRow; k++) { //새로운 행렬의 원소는 곱해진 행렬의 열과 행의 곱을 모두 더한 값이다. matrixRet[i][j] += matrixA[i][k] * matrixB[k][j]; } cout << matrixRet[i][j] << " "; } cout << endl; } } int main() { int aN, aM, bN,bM; cin >> aN >> aM; for (int column = 0; column < aN; column++) for (int row = 0; row < aM; row++) cin >> matrixA[column][row]; cin >> bN >> bM; for (int column = 0; column < bN; column++) for (int row = 0; row < bM; row++) cin >> matrixB[column][row]; matrixMultiplication(aN, aM, bN, bM); return 0; } | cs |
3. 참고 |
https://ko.wikipedia.org/wiki/%ED%96%89%EB%A0%AC
질문이나 지적 있으시면 댓글로 남겨주세요~
도움 되셨으면 하트 꾹!
'<백준> > |c++| normal' 카테고리의 다른 글
[c++] 백준 1693 - 트리 색칠하기 (0) | 2019.05.09 |
---|---|
[c++] 백준 1991 - 트리 순회 (0) | 2019.05.05 |
[c++] 백준 10253 - 헨리(분수를 gcd로 나눠주자) (0) | 2019.04.24 |
[c++] 백준 1024 - 수열의 합 (0) | 2019.04.19 |
[c++] 백준 1912 - 연속합(분할 정복, 동적 계획법) (0) | 2019.04.16 |