안녕하세요

프로그래머스 JavaScript [행렬의 덧셈]★ 이중 for문 본문

프로그래머스/Lv.1

프로그래머스 JavaScript [행렬의 덧셈]★ 이중 for문

sakuraop 2022. 9. 27. 22:06
  • 행렬의 덧셈
문제 설명

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

제출한 답

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

 

우선 answer의 [i] 번째 인덱스에 빈 배열을 추가하게 됩니다. 

[ [], [], [], [] ] 와 같은 형태가 됩니다.

 

이제 빈 배열에 순서대로 배열끼리 더한 값을 넣어줍니다.

answer[0]에 값 넣기 // [ [ arr1[0][0] + arr[0][1] ], [], [], [] ]

answer[0]에 값 넣기 // [ [ arr1[0][0] + arr[0][1], arr1[1][0] + arr[1][1] ], [], [], [] ]

이렇게 [0]번째 배열에 값을 차례대로 넣고,

 

answer[1]에 값 넣기 // [ [ arr1[0][0] + arr[0][1], arr1[1][0] + arr[1][1] ], [ arr1[0][0] + arr[0][1] ], [ ], [ ] ]

answer[1]에 값 넣기 // [ [ arr1[0][0] + arr[0][1], arr1[1][0] + arr[1][1] ], [ arr1[0][0] + arr[0][1], arr1[1][0] + arr[1][1] ], [], [] ]

[1]번째 배열에 값을 두개 넣는 과정을 이후의 배열들에도 동일하게 반복하게 됩니다.