Contents

[프로그래머스]행렬의 곱셈

Contents

https://programmers.co.kr

문제:

2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요.

풀이:

arr1의 가로행과 arr2의 세로열의 값들을 각각 곱한것을 더한 값을 a에 저장한다.

저장된 배열 a를 answer에 푸쉬 한다.

코드:

사용언어 : c++

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
#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>a;
        for (int t = 0; t < arr2[0].size(); t++){
            int sum = 0;
            for (int y = 0; y < arr1[0].size(); y++)
                sum += arr1[i][y] * arr2[y][t];
            a.push_back(sum);
        }
        answer.push_back(a);
    }
    return answer;
}