코테연습

156. 행렬의 덧셈 Javascript

hxunz 2022. 9. 18. 15:54

https://school.programmers.co.kr/learn/courses/30/lessons/12950

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

1. 문제에 대한 이해

  • 우리가 풀어야 할 문제는 무엇인가?
     - 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환
  • 주어진 자료는 무엇인가?
     - 2개의 행렬 arr1과 arr2
  • 조건은 무엇인가?
     - 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않는다.
     - 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과

2. 계획

  1. 같은 위치의 인덱스 값끼리 더한다. 

3. 실행

  • 풀이 계획을 실행하고, 각 단계가 올바른지 점검하라.
const solution = (arr1, arr2) => {
  // 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과
  // 같은 위치의 인덱스 값끼리 더한다
  let newArr = [];
  for (i = 0; i < arr1.length; i++) {
    let sum = [];
    for (j = 0; j < arr1[i].length; j++) {
      sum.push(arr1[i][j] + arr2[i][j])
    }
    newArr.push(sum);
  }
  return newArr;
}

test('newProcession', () => {
  expect(solution([[1, 2], [2, 3]], [[3, 4], [5, 6]])).toEqual([[4, 6], [7, 9]]);
  expect(solution([[1], [2]], [[3], [4]])).toEqual([[4], [6]]);
});