[#17][알고리즘] 행렬의 곱셈
프로그래머스 > 행렬의 곱셈
문제 링크(https://programmers.co.kr/learn/challenge_codes/140)
C++ 풀이
문제 링크(https://programmers.co.kr/learn/challenge_codes/140)
C++ 풀이
#include<iostream>
#include<vector>
using namespace std;
vector<vector<int> >productMatrix(vector<vector<int> >A, vector<vector<int> >B)
{
vector<vector<int> >answer;
answer.resize(A.size());
for(int i = 0; i < answer.size(); i++){
answer[i].resize(B[0].size());
}
for(int i = 0; i < A.size(); i++){
for(int j = 0; j < B[0].size(); j++){
for(int k = 0; k < A[0].size() ; k++){
answer[i][j] += A[i][k] * B[k][j];
}
}
}
return answer;
}
int main()
{
vector<vector<int> >A{{1,2}};
vector<vector<int> >B{{1,2,3},{2,3,4}};
vector<vector<int> > testAnswer = productMatrix(A,B);
for(int i=0;i<testAnswer.size(); i++)
{
for(int j=0;j<testAnswer[i].size(); j++)
cout<<testAnswer[i][j]<<" ";
cout<<"\n";
}
}
| cs |
- answer의 크기 조절=> 행 : A배열의 행 / 열 : B배열의 열
- answer[i][j] = A[i][0]*B[0][j] + A[i][1]*B[1][j] + … + A[i][k]*B[k][j]

댓글
댓글 쓰기