본문 바로가기
알고리즘 일기

행렬 곱셈 구현

by Beijing_KingGod 2019. 9. 3.
#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> temp;
        for(int j=0; j<arr2[0].size(); j++){ // 열
            temp.push_back(0);
            for(int k=0; k<arr1[i].size(); k++){ //arr1 열 , arr2 행
                temp[j]+=arr1[i][k]*arr2[k][j];
            }
        }
        answer.push_back(temp);
    }
    return answer;
}

1. 앞 행렬의 열의 갯수 와 뒷행렬의 행의 갯수가 같아야함

2. 결과 행렬은 앞행렬의 행의 갯수 *뒷행렬의 열의 갯수이다.

 

3 *  2 * 2 * 5 = 3 * 5

행  열  행  열   행 열

댓글