코딩테스트 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를 반환합니다.