[프로그래머스] 행렬의 덧셈

지은·2023년 3월 7일
0

Algorithm

목록 보기
15/33

문제

행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 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]]

나의 풀이

new Array()로 2차원 배열을 만든 후 result[i][j] = ...로 값을 넣어줬다.

function solution(arr1, arr2) {
    const result = new Array(arr1.length); // [empty, empty]
    for(let i = 0; i < arr1.length; i++) {
        result[i] = new Array(arr1[i].length); // [[empty, empty], [empty, empty]]
        for(let j = 0; j < arr1[i].length; j++) {
            result[i][j] = arr1[i][j] + arr2[i][j]; // [[4, 6], [7, 9]]
        }
    }
    return result;
}

다른 사람의 풀이 1

map() 메소드를 사용해서 arr1 배열의 각 요소에 arr2 요소의 값을 더해줬다.

function solution(arr1, arr2) {
    return arr1.map((arr, idx) => arr.map((v, i) => arr[i] + arr2[idx][i]));
}

다른 사람의 풀이 2

result[i] = []; 을 통해 배열을 만들고 배열 안에 요소들을 push 해줬다.

function solution(arr1, arr2) {
    const result = [];
  	for(let i = 0; i < arr1.length; i++) {
      result[i] = [];
      for(let j = 0; j < arr1[i].length; j++) {
        result[i].push(arr1[i][j] + arr2[i][j]);
      }
    }
  return result;
}
profile
개발 공부 기록 블로그

0개의 댓글