반응형
https://www.acmicpc.net/problem/2740
2740번: 행렬 곱셈
첫째 줄에 행렬 A의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 순서대로 주어진다. 그 다음 줄에는 행렬 B의 크기 M과 K가 주어진다. 이어서 M개의 줄에 행렬 B의 원소 K개
www.acmicpc.net
- 문제
N * M 행렬과 M * K 행렬이 주어지면 행렬 곱셈을 이용해서 N * K 행렬을 만드는 문제다.
- 해설
실버 5 문제라 쉽게 풀릴 줄 알았는데, 생각보다 시간이 많이 걸렸다.
- 풀이
#include <iostream>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int N, M, K, temp;
int A[101][101], B[101][101], answer[101][101];
cin >> N >> M;
for (int i = 0; i < N; i++)
{
for (int j = 0; j < M; j++)
{
cin >> A[i][j];
}
}
cin >> M >> K;
for (int i = 0; i < M; i++)
{
for (int j = 0; j < K; j++)
{
cin >> B[i][j];
}
}
for (int i = 0; i < N; i++)
{
for (int j = 0; j < K; j++) // N * K 행렬을 만들어야 함
{
for (int k = 0; k < M; k++) // 각 구역마다 M번 만큼 반복해야 함
{
answer[i][j] += A[i][k] * B[k][j];
}
cout << answer[i][j] << ' ';
}
cout << '\n';
}
// or
// for (int i = 0; i < N; i++)
// {
// for (int j = 0; j < K; j++)
// {
// cout << answer[i][j] << ' ';
// }
// cout << '\n';
// }
return 0;
}
- 새롭게 알게 된 점
반응형
'Algorithm > Baekjoon BOJ' 카테고리의 다른 글
[백준][C++] 11286: 절대값 힙 (0) | 2022.12.09 |
---|---|
[백준][C++] 11401: 이항 계수 3 (0) | 2022.12.08 |
[백준][C++] 5430: AC (0) | 2022.11.21 |
[백준][C++] 1931: 회의실 배정 (0) | 2022.11.15 |
[백준][C++] 13305: 주유소 (0) | 2022.11.14 |