[프로그래머스] Lv.1 행렬의 덧셈 JavaScript

Janet·2023년 3월 8일
0

Algorithm

목록 보기
64/314

문제 설명

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

제한 조건

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

입출력 예

arr1arr2return
[[1,2],[2,3]][[3,4],[5,6]][[4,6],[7,9]]
[[1],[2]][[3],[4]][[4],[6]]

문제풀이

💡 문제풀이 과정

  • 답안 1번: 2개의 for() 반복문을 사용하여 2차원 배열의 각각의 인덱스 값을 더하여 push()했다. arr1.length 보다 작은 i와, arr1[i].length보다 작은 j 이렇게 2개의 반복문을 만들어 주는게 핵심이다. 또한 2차원 배열의 형태로 만들어야 하기때문에, for() 첫 번째 반복문 아래에 answer[i] = []; 라는 빈 배열을 정의해 준다.
  • 답안 2번: 다른 사람의 답안을 참고하다가 map() 함수를 두 번 중복으로 사용하여 2차원 배열에 접근한 방법 또한 간결했다.

✅ 답안 #1

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

✅ 답안 #2

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

0개의 댓글