![[JavaScript] 행렬의 덧셈 [JavaScript] 행렬의 덧셈](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
문제
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 된다.
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])
'🧬알고리즘 > Programmers' 카테고리의 다른 글
[JavaScript] [1차] 비밀지도 - 2018 카카오 블라인드 코딩 테스트 (0) | 2024.08.22 |
---|---|
[JavaScript] x만큼의 간격이 있는 n개의 숫자 (0) | 2024.08.21 |
[JavaScript] 핸드폰 번호 가리기 (0) | 2024.08.21 |
[JavaScript] 제일 작은 수 제거하기 (0) | 2024.08.20 |
[JavaScript] 정수 제곱근 판별 (0) | 2024.08.20 |
댓글