[프로그래머스] 행렬의 덧셈 - Javascript

devmin24·2021년 8월 6일
1

⏳ 도전! 알고리즘

목록 보기
23/32
post-thumbnail

문제 링크

문제

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

풀이

arr1arr2return
[[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;
}

Takeaway

어려운 점 없이 쉽게 푼 문제였다!
나는 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;
}
profile
꾸준함, 열정 한 가득 챙겨 끝없는 목표를 향해 달려가는 개발자👩‍💻

1개의 댓글

comment-user-thumbnail
2022년 5월 14일

answer[] = i;나 answer[]=[i] 가 아니라 answer[] = i;이렇게 작성해야만 되는 이유를 아시나요 .. ? ㅜ i를 answer[] 안에 넣어주는게 아니라고 생각했는데 결과값이 나오지 않네용

답글 달기