행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 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]] |
간단하게 2차원 배열을 for문을 돌려 2개의 배열을 같은 인덱스끼리 덧셈해주기만 하면 된다.
function solution(arr1, arr2) {
var answer = [];
for(let i=0; i<arr1.length; i++){ //[1,2][2,3]
let sum = [];
for(let j=0; j<arr1[i].length; j++){ //arr1 안의 배열의 길이 (2번)
sum.push(arr1[i][j] + arr2[i][j]) // 1번째 1+3, 2번째 2+4 / 3번째 2+5 4번째 3+6
}
answer.push(sum) // [4,6],[7,9]
}
return answer;
}
어려운 점 없이 쉽게 푼 문제였다!
나는 sum이라는 새로운 배열을 만들어 합한 값들을 넣어주고, sum에 담긴 합해진 배열들을 다시 answer에 넣어주어 풀었는데, 다른 사람의 풀이에서 새로운 배열을 만들지 않고, answer 하나만을 이용하여 푸는 법을 배웠다.
function solution(arr1, arr2) {
var answer = [[]];
for (var i=0; i<arr1.length; i++){
answer[i] =[];
for(var j=0; j<arr1[i].length; j++){
answer[i].push(arr1[i][j] + arr2[i][j]);
}
}
return answer;
}
answer[] = i;나 answer[]=[i] 가 아니라 answer[] = i;이렇게 작성해야만 되는 이유를 아시나요 .. ? ㅜ i를 answer[] 안에 넣어주는게 아니라고 생각했는데 결과값이 나오지 않네용