알고리즘

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

i'm suna 2023. 11. 2. 01:44

문제 설명

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

제한 조건
  • 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.
입출력 예arr1arr2return
[[1,2],[2,3]] [[3,4],[5,6]] [[4,6],[7,9]]
[[1],[2]] [[3],[4]] [[4],[6]]

나의 풀이

function solution(arr1, arr2) {
    var answer = [];
    for(i in arr1){
        let answerArr = []
        for(j in arr1[i]){
            answerArr.push(arr1[i][j]+arr2[i][j])
        }
        answer.push(answerArr)
    }
    return answer;
}

 

다른사람의 풀이

function sumMatrix(A,B){
    return A.map((arr1, idx1) => arr1.map((val, idx2) => val+B[idx1][idx2]));
}

map을 두번 써서 푼 풀이도 멋져보이긴 했지만

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

이 코드가 좀더 깔끔해보였다