행렬의 곱셈을 한동안 잊고 살다가 오랜만에 머리에서 끄집어 낸 문제
#include <iostream>
#include <vector>
using namespace std;
int main(void){
int N,M,m,n;
int in;
int temsum;
cin >> N >> M;
vector<vector<int>> A(N);
for(int i =0;i<N;i++){
for(int j=0;j<M;j++){
cin >> in;
A[i].push_back(in);
}
}
cin >> m >> n;
vector<vector<int>> B(m);
vector<vector<int>> C(N);
for(int i =0;i<m;i++){
for(int j=0;j<n;j++){
cin >> in;
B[i].push_back(in);
}
}
for(int i=0;i<N;i++){
for(int j=0;j<n;j++){
temsum=0;
for(int t=0;t<M;t++){
temsum += (A[i][t] * B[t][j]);
}
C[i].push_back(temsum);
}
}
for(int i=0;i<N;i++){
for(int j=0;j<n;j++){
cout << C[i][j] << ' ';
}
cout << '\n';
}
}
for(int i=0;i<N;i++){
for(int j=0;j<n;j++){
temsum=0;
for(int t=0;t<M;t++){
temsum += (A[i][t] * B[t][j]);
}
C[i].push_back(temsum);
}
}
구현문제다 보니 수학 개념만 알고 있으면 풀 수 있는 문제다 보니 문제 풀이는 생략함
별개로 2차원 vector를 활용하는 방법을 배우게 되었음