내가 작성한 답(오류)

function solution(arr1, arr2) {
    let answer = [];
    let arrResult = [];
    for (let i = 0; i<arr1.length; i++){
        const sumArray = [];
        for(let j = 0; j<arr2.length; j++){
            sumArray.push(arr1[i][j] + arr2[i][j]);
        }
        arrResult = sumArray.filter(item => !isNaN(item));
        answer.push(arrResult);
    }
    console.log(answer);
    return answer;
}

깔끔한 답

function solution(arr1, arr2) {
    const answer = arr1.map((x,x_row) => x.map((y,y_col) => y+arr2[x_row][y_col]));
    
    return 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;
}

코드 해석

깔끔한 답

arr1.map((x,x_row) => ...)

arr1 배열을 순회하고 각 행을 x로 가져옴

x.map((y,y_col) => ...)

x를 순회하고 각 행을 y로 가져옴

y+arr2[x_row][y_col]

yarr2의 동일한 위치에 있는 요소를 더함.

나와 비슷한 답 + 오류가 난 이유
비슷한 답은 빈 배열을 하나 추가한 상태로 시작하여 for문을 통해 요소를 더하고 배열에 추가했다.
내가 작성한 코드는 초기화하지 않고 빈 배열로 시작해서 이전 값을 덮어쓰게 된다.
따라서, answer 배열에는 모든 행이 동일한 값을 가지게 되기 때문에 오류가 발생했음.

profile
개발자가 되고 싶은 지망생

0개의 댓글

Powered by GraphCDN, the GraphQL CDN