백준/일반 문제

[백준/BOJ] 2740 - 행렬 곱셈 (c++)

sem; 2021. 3. 29. 15:43
반응형

1. 문제

 

www.acmicpc.net/problem/2740


2. 풀이

 

위의 식처럼

 

행렬 곱셈을 원소 하나하나씩 푸는 것이다.


3. 소스코드

 

#include <stdio.h>

int m1[102][102], m2[102][102], res[102][102] = { 0 };

int main() {
	int n, m, k;
	scanf("%d %d", &n, &m);
	for (int i = 0;i < n;i++) {
		for (int j = 0;j < m;j++) {
			scanf("%d", &m1[i][j]);
		}
	}
	scanf("%d %d", &m, &k);
	for (int i = 0;i < m;i++) {
		for (int j = 0;j < k;j++) {
			scanf("%d", &m2[i][j]);
		}
	}
	for (int i = 0;i < n;i++) {
		for (int j = 0;j < k;j++) {
			for (int l = 0;l < m;l++) {
				res[i][j] += (m1[i][l] * m2[l][j]);
			}
		}
	}
	for (int i = 0;i < n;i++) {
		for (int j = 0;j < k;j++) {
			printf("%d ", res[i][j]);
		}
		printf("\n");
	}
}

4. 참고

 


질문, 고칠점 등 댓글 언제나 환영입니다.

반응형