[#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]

댓글
댓글 쓰기