문제 설명
행렬의 곱셈
해결 방법
행렬의 곱셈은 앞 행렬의 열의 개수와 뒤 행렬의 행의 개수가 같아야만 성립한다. 행렬 곱셈의 결과로 생기는 행렬은 (앞 행렬의 행의 개수) x (뒤 행렬의 열의 개수)이다. 즉 i x k, k x j 행렬의 곱셈 결과로 i x j 행렬이 생기는 것이다. 행렬 곱을 식으로 나타내면이므로 3중 for문으로 행렬의 곱셈을 구현할 수 있다.
💻소스코드
#include <string>
#include <vector>
using namespace std;
vector<vector<int>> solution(vector<vector<int>> arr1, vector<vector<int>> arr2) {
vector<vector<int>> answer;
for (int i = 0; i < arr1.size(); i++) {
vector<int> tmp;
for (int j = 0; j < arr2[0].size(); j++) {
int result = 0;
for (int k = 0; k < arr1[0].size(); k++) {
result += arr1[i][k] * arr2[k][j];
}
tmp.push_back(result);
}
answer.push_back(tmp);
}
return answer;
}