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

hyocho·2022년 6월 8일
0

코딩테스트

목록 보기
3/45

✅문제

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

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

💡주어진 솔루션

function solution(arr1, arr2) {
    var answer = [[]];
    return answer;
}

✍문제풀이

function solution(arr1, arr2) {
  //행렬 arr1와 arr2가 주어진다.
    let answer = [];
  //answer 이라는 배열을 선언한다.
    
    for(let i=0; i<arr1.length; i++){ 
      //arr1 의 마지막까지 반복한다
        let sum = [];
      //sum이라는 배열을 선언한다.
        for(let j=0; j<arr1[i].length; j++){ 
          //
            sum.push(arr1[i][j] + arr2[i][j])
          // .push 로 sum 배열의 끝에 값을 하나씩 더해준다.
        }
        answer.push(sum) 
      // answer 배열에 sum의 값을 모두 넣어준다.
    }
    return answer;
  // answer값을 리턴해주며 마무리.
}

예를 들어 arr1[[a1, a2], [a3, a4]], arr2[[b1, b2],[b3, b4]] 로 주어졌다고 했을 때,
answer은 [[a1+b1, a2+b2], [a3+b3, a4+b4]]가 되어야 한다.
이중 for문을 사용, i인덱스 j번째 요소를 나타낼 수 있도록 만들어 준다.
첫 for문에서 빈 배열을 만들어 두번째 배열로 push하고, 그 배열은 다시 answer배열에 push되어 정답이 반환되게 된다.


✔️참고할 좋은 코드

function sumMatrix(A,B){
    return A.map((a,i) => a.map((b, j) => b + B[i][j]));
}
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;
}

문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/12950

profile
기록하는 습관을 기르고 있습니다.

0개의 댓글