Algorithm - 행렬의 덧셈

devmoonsh·2021년 1월 3일
0

Algorithm

목록 보기
36/37
post-thumbnail

**프로그래머스 Lv.1 **

문제 설명

행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 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) {
    let result = [];
    for (let i = 0; i < arr1.length; i++) {
        let newArr = [];
        for (let j = 0; j < arr1[i].length; j++) {
            newArr.push(arr1[i][j] + arr2[i][j]);
        }
        result.push(newArr);
    }
    return result;
}
  1. 최종적으로 출력되어야할 변수 result에 빈 배열을 할당한다.
  2. 변수 i가 arr1의 길이에 도달하기 전까지 반복문을 돌린다.
  3. 그 안에 newArr라는 변수를 생성하여 빈 배열을 할당한다. (배열 안의 배열을 담기 위한 것)
  4. 변수 j가 arr1[i]의 길이에 도달하기 전까지 반복문을 돌린다.
  5. 그 안에서 newArr 변수에 위 코드와 같이 요소를 push 한다.
  6. 두 번 째 반복문이 끝나면 newArr를 변수 result에 push한다.
  7. 최종적으로 result를 출력한다.

다른 사람의 풀이

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

2중 map을 돌려 풀이한 방법이다.

profile
Junior front-end developer

0개의 댓글