:ledger: 문제 설명

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

:one: 제한사항

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

:two: 입출력 예

arr1 arr2 return
[[1,2],[2,3]] [[3,4],[5,6]] [[4,6],[7,9]]
[[1],[2]] [[3],[4]] [[4],[6]]

:three: 입출력 예 설명

:pushpin: 3-1) 입출력 예 #1

  • 없음

:ledger: 문제 풀이

const solution = (arr1, arr2) =>
  arr1.map((item, i) => item.map((item, j) => item + arr2[i][j]));
console.log(
  solution(
    [
      [1, 2],
      [2, 3],
    ],
    [
      [3, 4],
      [5, 6],
    ]
  )
);

:computer: 풀이

  1. 문제를 보면 arr1 과 arr2의 n번째 배열끼리 덧셈을 하는 문제이다. 각 배열의 길이가 같아서 반복문을 사용하여 풀기로 했다.
  2. 먼저 arr1에서 map메서드를 사용하여, item은 [1,2]와 [2,3] 배열로 처리했다.
  3. 그리고 map메서드를 다시 사용하여, 각 배열의 1,2와 2,3을 순회할 때 arr2의[i][j] 즉, i행 j열의 숫자를 더해주었다.

:fire: 다른 사람의 풀이 참고

대부분 반복문을 사용하여 문제를 처리했다.

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://school.programmers.co.kr/learn/challenges