Algorithm/Programmers(c++)
[c++][프로그래머스] 행렬의 곱셈
kim-hasa
2021. 9. 1. 12:09
https://programmers.co.kr/learn/courses/30/lessons/12949
코딩테스트 연습 - 행렬의 곱셈
[[2, 3, 2], [4, 2, 4], [3, 1, 4]] [[5, 4, 3], [2, 4, 1], [3, 1, 1]] [[22, 22, 11], [36, 28, 18], [29, 20, 14]]
programmers.co.kr
두 행렬을 곱셈하는 문제이다.
정답이 될 행렬의 가로, 세로의 길이로 초기화한 후, 곱한값을 더해서 넣으면 완료 !
#include <string>
#include <vector>
using namespace std;
vector<vector<int>> solution(vector<vector<int>> arr1, vector<vector<int>> arr2) {
int len1 = arr1.size(); // 행렬의 세로 길이
int len2 = arr2[0].size(); // 행렬의 가로 길이
int len3 = arr1[0].size(); // 곱할 갯수
vector<vector<int>> answer(len1, vector<int>(len2)); // 벡터 초기화
for(int i = 0; i< len1; i++)
{
for(int j=0; j<len2; j++)
{
int sum = 0;
for(int k=0; k<len3; k++)
{
sum += arr1[i][k] * arr2[k][j]; // 곱해서 더함
}
answer[i][j] = sum; // 넣어줌
}
}
return answer;
}