bravo my life!

[항해99][알고리즘] [JavaScript] 행렬의 덧셈 본문

Algorithm

[항해99][알고리즘] [JavaScript] 행렬의 덧셈

losajjang 2022. 3. 16. 14:52
728x90

문제 설명

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

solution.js 

function solution(arr1, arr2) {
  var answer = [];
  for (let i = 0; i < arr1.length; i++){
  //반복문을 실행한다. 조건은 arr1의 길이를 지정한다.
    let temp = []
    for (let j = 0; j < arr1[i].length; j++){
    //반복문을 실행한다. 조건은 arr1[i]의 길이를 지정한다.
      temp.push(arr1[i][j] + arr2[i][j])
      //arr1의 [i]번째 배열내의 [j]번째의 내용과 arr2의 [i]번째 배열내의 [j]번째의 내용을 더한후
      //변수 temp에 push해준다.
      
    }
    answer.push(temp)
    //변수 answer에 변수 temp의 내용을 push해준다.
  }
  
  return answer;
}

다른 풀이

function solution(arr1, arr2) {
  return arr1.map((e,i) => 
  //매개변수 arr1의 배열을 .map method를 사용하여 요소 e와 i인덱스를 만들어준다.
  e.map((ee,j) => 
  //다시금 arr1배열의 내부배열에 .map method를 사용하여 요소 ee와 j인덱스를 만들어준다.
  ee + arr2[i][j]))
  //최종적으로 요소 ee에 할당된 값과 arr2의 i번째 배열의 j번째 내부배열을 더하여 리턴한다. 
}
console.log(solution([[1,2],[2,3]], [[3,4],[5,6]]))
console.log(solution([[1],[2]], [[3],[4]]))