🧬알고리즘/Programmers

[JavaScript] 행렬의 덧셈

뉴발자 2024. 8. 21.
728x90

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[JavaScript] 행렬의 덧셈

 

 

문제

행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 된다.

 

2개의 행렬 arr1과 arr2가 매개변수로 주어질 때, 행렬 덧셈의 결과를 반환하는 함수를 작성하라.

 

 

예시

arr1 arr2 return
[[1, 2], [2, 3]] [[3, 4], [5, 6]] [[4, 6], [7, 9]]
[[1], [2]] [[3], [4]] [[4], [6]]

 

 

나의 풀이

const solution = (arr1, arr2) => arr1.map((arr, i) => arr.map((v, j) => v + arr2[i][j]));

 

 

풀이 방법

먼저 이차원 배열이 주어진 것을 보고 이중 for문을 사용해야겠다고 생각했다.

 

하지만 for문을 두 번 사용하면 코드가 길어져서 가독성이 떨어질 것 같다는 판단에 map() 함수를 사용하기로 했다.

 

처음에는 빈 배열을 따로 선언해서 push() 해주는 방법으로 구현했다.

 

하지만 map() 함수는 return값이 배열이기 때문에 굳이 빈 배열을 생성하지 않아도 된다고 생각했다.

 

arr1과 arr2는 행과 열의 크기가 같기 때문에 맨 처음 map() 함수를 쓰는 배열은 어떤 것이든 상관없었다.

 

arr1을 map함수를 사용해서 index의 value와 index 값을 받아왔다. (arr, i)

 

그리고 이차원 배열 구조이기 때문에 받아온 value에서 다시 map() 함수를 사용했다. (arr.map(() => {}))

 

2번째 map() 함수에서 받아온 v값과 해당 행, 열에 해당하는 다른 배열의 value 값을 더해서 반환되게 했다. (v + arr2[i][j])

 

 

 

 

 

 

 

 

 

 

728x90

댓글