반갑습니다!

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

알고리즘 문제 풀이

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

김덜덜이 2020. 8. 31. 19:50
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr

풀이

행렬의 곱셈을 구현하면 된다. 곱셈 결과를 계산하기 전에 결과 행렬의 크기는 미리 알 수 있으므로 사이즈를 미리 초기화하는 방식으로 구현했다.

코드

#include <string>
#include <vector>
using namespace std;

vector<vector<int>> solution(vector<vector<int>> arr1, vector<vector<int>> arr2) {
    int n = arr1.size(), m = arr2[0].size();
    vector<vector<int>> answer(n, vector<int>(m));
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            int sum = 0;
            for (int k = 0; k < arr1[i].size(); k++) {
                sum += (arr1[i][k] * arr2[k][j]);
            }
            answer[i][j] = sum;
        }
    }
    return answer;
}