행렬의 덧셈

문제

행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.

제한조건

  • 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.

풀이방향

  • 행렬 배열을 받아서 행끼리 합, 열끼리 합산 해준다

풀이

sumMatrix.js
1
2
3
4
5
6
7
8
9
10
11
12
function sumMatrix(arr1, arr2) {
let answer = [];
arr1.forEach((row, i) => {
answer[i] = [];
row.forEach((col, j) => {
answer[i][j] = arr1[i][j] + arr2[i][j];
});
});
return answer;
}

export { sumMatrix };
sumMatrix.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import { sumMatrix } from "../src/sumMatrix";

describe("sumMatrix", () => {
it("should return a sum array", () => {
const arr1 = [
[1, 2],
[2, 3]
];
const arr2 = [
[3,4],
[5,6]
];
const answer = [
[4,6],
[7,9]
];
expect(sumMatrix(arr1, arr2)).toEqual(answer);
});

it("should return a sum array", () => {
const arr1 = [
[1],
[2]
];
const arr2 = [
[3],
[4]
];
const answer = [
[4],
[6]
];
expect(sumMatrix(arr1, arr2)).toEqual(answer);
});
});

출처

  • 프로그래머스

다른 풀이

1
2
3
function sumMatrix(A,B){
return A.map((a,i) => a.map((b, j) => b + B[i][j]));
}