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

Wonjun·2022년 7월 20일
0

알고리즘 & 문제풀이

목록 보기
41/50
post-thumbnail

📝 행렬의 곱셈

문제 설명

행렬의 곱셈

해결 방법

행렬의 곱셈은 앞 행렬의 열의 개수와 뒤 행렬의 행의 개수가 같아야만 성립한다. 행렬 곱셈의 결과로 생기는 행렬은 (앞 행렬의 행의 개수) 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;
}
profile
알고리즘

0개의 댓글