Programmers/LV2

프로그래머스 행렬의 곱셈 c++

Hun-bot 2024. 11. 8. 13:31
728x90
반응형

정방이 아닌 행렬은 3x5 5x3 이런식으로 되어 있어야 곱셈이 이뤄질 수 있음

https://ko.wikipedia.org/wiki/%ED%96%89%EB%A0%AC_%EA%B3%B1%EC%85%88

 

행렬 곱셈 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 행렬 곱셈을 위해선 첫째 행렬의 열 갯수와 둘째 행렬의 행 갯수가 동일해야한다. 곱셈의 결과 새롭게 만들어진 행렬은 첫째 행렬의 행 갯수와 둘째 행렬의 열

ko.wikipedia.org

첫째 행렬의 행 갯수와 둘째 행렬의 열 갯수가 동일해야 한다.

#include <string>
#include <vector>

using namespace std;

vector<vector<int>> solution(vector<vector<int>> arr1, vector<vector<int>> arr2) {
    vector<vector<int>> answer;

    answer.assign(arr1.size(),vector<int>(arr2[1].size()),0);
    for(int i=0;i<arr1.size();i++){
        for(int j=0;j<arr2[1].size();j++){
            for(int k=0;k<arr2.size();k++){
                answer[i][j]+=arr1[i][k]*arr2[k][j];
            }
        }
    }
    return answer;
}
728x90
반응형