문제 풀이/문제 풀이(프로그래머스)

연습문제 > 행렬의 곱셈

풀뿌리 2024. 12. 17. 10:26

문제 위치 : https://school.programmers.co.kr/learn/courses/30/lessons/12949

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

행렬의 곱셈을 구현하는 문제다.

행렬의 곱셈은 위와 같이 계산되므로 이를 구현해주면 된다.

#include <vector>

using namespace std;

vector<vector<int>> solution(vector<vector<int>> arr1, vector<vector<int>> arr2) {
    int m = arr1.size();
    int n = arr1[0].size();
    int p = arr2[0].size();

    vector<vector<int>> result(m, vector<int>(p, 0));

    for (int i = 0; i < m; i++) {
        for (int j = 0; j < p; j++) {
            for (int k = 0; k < n; k++) {
                result[i][j] += arr1[i][k] * arr2[k][j];
            }
        }
    }

    return result;
}