[lev1] 행렬의 덧셈

AnSuebin·2022년 7월 11일
0

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

제한 조건
행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.

입출력 예
arr1 arr2 return
[[1,2],[2,3]] [[3,4],[5,6]] [[4,6],[7,9]]
[[1],[2]] [[3],[4]] [[4],[6]]

나의 풀이

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

  for (let i = 0; i < arr1.length; i++) {
    let sum = []
    for (let j = 0; j < arr1[i].length; j++) {
      sum.push(arr1[i][j] + arr2[i][j])
    }
    answer.push(sum)
  }
  return answer
}

=> 행렬 안에 또다른 행렬이 존재함. 그래서 for구문을 두번 인덱스를 활용하여 인식시키는 것이 문제 해결의 포인트

다른 풀이

function solution(arr1, arr2){
	return arr1.map((e,i) => 
    		arr2.map((v,j) => arr1[i][j] + arr2[i][j])
)}

=> 콜백함수의 중복 사용. 콜백함수에서는 처음은 요소 두번째는 인덱스를 나타내며, 이를 활용하여 행렬의 인덱스 그 안 행렬의 인덱스를 뽑아냄.

profile
고객에게 명료한 의미를 전달하고, 명료한 코드를 통해 생산성 향상에 기여하고자 노력합니다.

0개의 댓글