js/[문제풀이] programmers

[js] 행렬의 덧셈_Addition Of Matrixs

우금붕 2023. 1. 27. 10:20

[문제 설명]

행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 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) {
    var answer = [];

    for (var i=0; i<arr1.length; i++){
        let step1 = [];
        for (var j=0; j<arr1[i].length; j++){
            step1.push(arr1[i][j] + arr2[i][j]);
        }
        answer.push(step1);
    }
    return answer;
}

 

 

 

[해설]

1차원 배열 answer 생성 후, for문 안에 1차원 배열 step1 생성 (2차원 배열이 될 수 있도록)

2중 for문으로 step1에 한 줄씩 더한 값을 추가

answer에 step1을 하나씩 넣으면 최종적으로 얻고자 하는 2차원 배열을 얻을 수 있습니다.

 

 

 

[다른 사람 풀이]

function sumMatrix(A,B){
	return A.map((a,i) => a.map((b, j) => b + B[i][j]));
}

 

map 함수와 화살표 함수를 활용하여 코드를 간략하게 구현하였습니다.

 

 

*.map()

배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환합니다.

 

 

 

[느낀점]

배열의 각각 요소에 대한 문제에서는 map 함수를 활용하면 코드를 깔끔하게 작성할 수 있다.

 

 

 

[github] - AdditionOfMatrixs.js

https://github.com/yh725k/javascript.git

 

GitHub - yh725k/javascript

Contribute to yh725k/javascript development by creating an account on GitHub.

github.com