dh-winternagi 님의 블로그
(2740) 행렬 곱셈 본문
https://www.acmicpc.net/problem/2740
단계별로 풀어보기
24단계(분할 정복) 6번째
분할 정복과 큰 관련은 없고, 다음 문제를 풀기 위해 행렬 곱셈을 연습시키는 문제다.
행렬 곱셈을 구현할 땐 크기에 유념하자. 결과 행렬의 행과 열의 크기는 첫번째 행렬의 행, 두번째 행렬의 열과 같다.

#include <iostream>
#include <vector>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n, m, k;
cin >> n >> m;
vector a(n, vector<int> (m));
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin >> a[i][j];
}
}
cin >> m >> k;
vector b(m, vector<int> (k));
for(int i=0;i<m;i++){
for(int j=0;j<k;j++){
cin >> b[i][j];
}
}
vector c(n, vector<int> (k));
for(int i=0;i<n;i++){
for(int j=0;j<k;j++){
for(int t=0;t<m;t++){
c[i][j]+= a[i][t]*b[t][j];
}
}
}
for(int i=0;i<n;i++){
for(int j=0;j<k;j++){
cout << c[i][j] << " ";
}
cout << "\n";
}
return 0;
}'백준 (C++) > Solve' 카테고리의 다른 글
| (11444) 피보나치 수 6 (0) | 2026.04.18 |
|---|---|
| (10830) 행렬 제곱 (0) | 2026.04.18 |
| (11401) 이항 계수 3 (0) | 2026.04.18 |
| (1629) 곱셈 (0) | 2026.04.18 |
| (1780) 종이의 개수 (0) | 2026.04.18 |
