728x90
시간 제한 : 1초
메모리 제한 : 128MB
입력
첫째 줄에 행렬 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 main(void) { int A[100][100], B[100][100], C[100][100] = { 0, }, n, m, k; 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++) { for (int l = 0; l < m; l++) { C[i][j] += A[i][l] * B[l][j]; } } } for (int i = 0; i < n; i++) { for (int j = 0; j < k; j++) cout << C[i][j] << ' '; cout << '\n'; } }
Tip
행렬 곱셈만 구현해주면 되는 단순한 구현 문제다. 이중 배열을 활용하면 된다.
728x90
'Computer Science > Algorithm Problem' 카테고리의 다른 글
백준] 9506 - 약수들의 합(ACM-ICPC Regionals) (0) | 2018.07.19 |
---|---|
백준] 4539 - 반올림(ACM-ICPC Regionals) (0) | 2018.07.16 |
백준] 15720 - 카우버거(중앙대 CodeRace 2018) (0) | 2018.07.11 |
백준] 3076 - 상근이의 체스판(COCI 2012/2013) (0) | 2018.07.09 |
백준] 2804 - 크로스워드 만들기(COCI 2011/2012) (0) | 2018.06.28 |