
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
제한 조건
행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.
입출력 예
arr1 arr2 return
[[1,2],[2,3]] [[3,4],[5,6]] [[4,6],[7,9]]
[[1],[2]] [[3],[4]] [[4],[6]]
function solution(arr1, arr2) {
// answer라는 arr1과 구조는 같지만 요소는 전부 0인 배열을 만들어준다
// arr1을 돌면서 각 요소들을 answer에 넣어준다
// arr2을 돌면서 전 answer에 더해준다
const answer = new Array(arr1.length).fill([]).map((el) => new Array(arr1[0].length).fill(0));
arr1.forEach((el, index) => {
for (let i = 0; i < el.length; i++) {
answer[index][i] = el[i];
}
});
arr2.forEach((el, index) => {
for (let i = 0; i < el.length; i++) {
answer[index][i] += el[i];
}
});
return answer;
}
❗️ 내가 푼 방식은 이 문제의 테스트 케이스에는 문제되지 않지만
만약 입력 배열이 3개 이상이라면 풀리지 않는 코드이다.
또한, 빈 배열에 arr1의 요소들을 더해주면서 하지 않아도 될 단계를 하나 더 추가해준 느낌이 있다.
✏️ 이중 반복문을 활용해 arr[1] 요소 + arr[2] 요소 값을 더해줘서 바로 빈 배열에 push로 넣어주는 방법이 복잡도에서 좋을 것 같다.