[#17][알고리즘] 행렬의 곱셈

프로그래머스 > 행렬의 곱셈
문제 링크(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]
       k는 A의 열의 수

댓글

가장 많이 본 글