코딩테스트 47일차

행렬의 덧셈

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

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

  if (arr1.length !== arr2.length || arr1[0].length !== arr2[0].length) {
    throw new Error("행렬의 크기가 다릅니다.");
  }

  for (var i = 0; i < arr1.length; i++) {
    var row = [];

    for (var j = 0; j < arr1[i].length; j++) {
      row.push(arr1[i][j] + arr2[i][j]);
    }

    answer.push(row);
  }

  return answer;
}

✏️풀이

var answer = [];: 결과 행렬을 저장할 배열 answer를 선언하고 빈 배열로 초기화합니다.

if (arr1.length !== arr2.length || arr1[0].length !== arr2[0].length) { throw new Error("행렬의 크기가 다릅니다."); }: 두 행렬의 행과 열의 크기를 비교하여 같은 크기인지 확인합니다. 만약 크기가 다르다면 Error를 발생시킵니다.

for (var i = 0; i < arr1.length; i++) { var row = []; ... }: 반복문을 사용하여 행렬 덧셈을 수행합니다. i는 행의 인덱스를 나타냅니다. 반복문을 돌면서 새로운 행을 생성할 row 변수를 선언하고 빈 배열로 초기화합니다.

for (var j = 0; j < arr1[i].length; j++) { row.push(arr1[i][j] + arr2[i][j]); }: 두 행렬의 같은 위치에 있는 요소들을 더하여 row에 추가합니다. j는 열의 인덱스를 나타냅니다. 각 위치에 있는 요소들을 더한 결과를 row에 push합니다.

answer.push(row);: 생성된 행 row를 answer에 추가합니다.

return answer;: 행렬 덧셈이 완료된 결과인 answer를 반환합니다.

728x90
반응형
다쭐◠‿◠