반응형
이번 문제는 간단한 행렬 덧셈 문제이다.
행렬에 대해 잘 모르겠다면 이곳을 참고해보길 바란다.
'행렬의 덧셈'은 아주 간단하다.
N * M 크기의 행렬 A, B가 존재할 때, 각 성분별로 더해서 N * M 크기의 새 행렬로 만들어주면 된다.
▶ 입력
첫째 줄에 행렬의 크기 N과 M이 주어진다.
둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 차례대로 주어진다.
이어서 N개의 줄에 행렬 B의 원소 M개가 차례대로 주어진다.
N과 M은 100보다 작거나 같고, 행렬의 원소는 절댓값이 100보다 작거나 같은 정수이다.
▶ 출력
첫째 줄부터 N개의 줄에 행렬 A와 B를 더한 행렬을 출력한다. 행렬의 각 원소는 공백으로 구분한다.
저는 굳이 행렬 A, B를 다 저장한 후에 결과를 출력하지 않아도 된다고 생각했다.
즉, 행렬 A의 값들만을 먼저 저장한 후에 B의 값들을 하나하나 더하면서 출력을 바로바로 해주면 된다.
실제로 이렇게 하면 공간과 시간이 절약될 것이다.
사용 언어: C++
#include <cstdio>
int mat[102][102];
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", &mat[i][j]);
for(int i = 0; i < n; ++i) {
for(int j = 0; j < m; ++j) {
scanf("%d", &k);
printf("%d ", mat[i][j] + k);
}
printf("\n");
}
}
반응형