Baekjoon Online Judge
[문제]
N*M크기의 행렬 A와 M*K크기의 행렬 B가 주어졌을 때, 두 행렬을 곱하는 프로그램을 작성하시오.
[입력]
첫째 줄에 행렬 A의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 순서대로 주어진다. 그 다음 줄에는 행렬 B의 크기 M과 K가 주어진다. 이어서 M개의 줄에 행렬 B의 원소 K개가 차례대로 주어진다. N과 M, 그리고 K는 100보다 작거나 같고, 행렬의 원소는 절댓값이 100보다 작거나 같은 정수이다.
[출력]
첫째 줄부터 N개의 줄에 행렬 A와 B를 곱한 행렬을 출력한다. 행렬의 각 원소는 공백으로 구분한다.
[코드]
#include <iostream>
using namespace std;
int a[101][101], b[101][101], res[101][101];
void Input(int a, int b, int arr[][101])
{
for (int i = 0; i < a; i++)
{
for (int j = 0; j < b; j++)
cin >> arr[i][j];
}
}
int main()
{
int n, m, k;
cin >> n >> m;
Input(n, m, a);
cin >> m >> k;
Input(m, k, b);
for (int i = 0; i < n; i++)
{
for (int j = 0; j < k; j++)
{
for (int k = 0; k < m; k++)
res[i][j] += a[i][k] * b[k][j];
cout << res[i][j] << " ";
}
cout << '\n';
}
return 0;
}
'Baekjoon > C++' 카테고리의 다른 글
[C++][BOJ/백준] 9375 패션왕 신해빈 (0) | 2025.02.10 |
---|---|
[C++][BOJ/백준] 21736 헌내기는 친구가 필요해 (0) | 2025.02.09 |
[C++][BOJ/백준] 9625 BABBA (0) | 2025.02.07 |
[C++][BOJ/백준] 32288 바코드 닉네임 (2) | 2025.01.26 |
[C++][BOJ/백준] 32651 인간은 무엇인가 (0) | 2025.01.26 |