문제 설명

행렬의 곱셈을 return

 

https://school.programmers.co.kr/learn/courses/30/lessons/12949

 

프로그래머스

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

programmers.co.kr

 

문제 풀이법

문제 그대로 행렬의 곱셈이기에 행렬의 곱셈 방법대로 3중 for문만 잘 한다면 어렵지 않게 구할 수 있다

 

다만, for문의 범위를 잘 체크해야한다!!!

 

설명은 행렬의 곱셈 방법 그대로이기에 pass~~

 

 

소스 코드

#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> v;
        for (int j = 0; j < arr2[0].size(); j++) {
            int tmp = 0;
            
            for (int k = 0; k < arr1[0].size(); k++)
                tmp += (arr1[i][k] * arr2[k][j]); 
            
            v.push_back(tmp); 
        }
        answer.push_back(v);
    }
    
    return answer;
}
복사했습니다!