행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
arr1 | arr2 | return |
---|---|---|
[[1,2],[2,3]] | [[3,4],[5,6]] | [[4,6],[7,9]] |
[[1],[2]] | [[3],[4]] | [[4],[6]] |
💡 문제풀이 과정
- 답안 1번: 2개의
for()
반복문을 사용하여 2차원 배열의 각각의 인덱스 값을 더하여push()
했다.arr1.length
보다 작은i
와,arr1[i].length
보다 작은j
이렇게 2개의 반복문을 만들어 주는게 핵심이다. 또한 2차원 배열의 형태로 만들어야 하기때문에,for()
첫 번째 반복문 아래에answer[i] = [];
라는 빈 배열을 정의해 준다.- 답안 2번: 다른 사람의 답안을 참고하다가
map()
함수를 두 번 중복으로 사용하여 2차원 배열에 접근한 방법 또한 간결했다.
✅ 답안 #1
function solution(arr1, arr2) {
let answer = [];
for (let i = 0; i < arr1.length; i++) {
answer[i] = [];
for (let j = 0; j < arr1[i].length; j++) {
answer[i].push(arr1[i][j] + arr2[i][j]);
}
}
return answer;
}
✅ 답안 #2
function sumMatrix(A, B) {
return A.map((arr1, idx1) => arr1.map((val, idx2) => val + B[idx1][idx2]));
}