프로그래머스 (JS)/Lv. 1

[Programmers / JS] 12950번 - 행렬의 덧셈

hodo- 2023. 3. 16. 14:26

Problem

문제 보기

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

제한 조건
- 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.


Solution

function solution(arr1, arr2) {
    let answer = [];
    let a = [];
    
    for(let i = 0; i < arr1.length; i++){    
       for(let j = 0; j < arr1[i].length; j++){
            a.push(arr1[i][j] + arr2[i][j]);
       } answer.push(a);
        a = [];
    }
    return answer;
}

비효율적으로 풀었나 싶어서 아래 풀이랑 비교했는데 시간이나 메모리측에서 크게 차이는 안 났으나 아래가 좀 더 코드가 간결하고 시간, 메모리 측에서도 더 나은 코드였다.

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