🔗 문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/12949
✏️ 풀이
function solution(arr1, arr2) {
const result = Array.from({ length: arr1.length }, () => Array(arr2[0].length).fill());
for (let i = 0; i < arr1.length; i++) {
for (let j = 0; j < arr2[0].length; j++) {
result[i][j] = arr1[i].reduce((acc, num, index) => acc + num * arr2[index][j], 0);
}
}
return result;
}
arr1의 세로 길이와 arr2의 가로 길이를 곱한 크기의 배열을 생성하고, 이중 for문을 통해 행렬곱 연산을 하였다.
function solution(arr1, arr2) {
return arr1
.map(row =>
arr2[0].map((v, i) =>
row.reduce((acc, v, j) => acc + v * arr2[j][i], 0)
)
);
}
위와 같이 arr1의 세로 길이 * arr2의 가로 길이 만큼의 배열을 map과 그 인덱스를 통해 간단하게 행렬곱을 구할 수 있다.
'연습장 > 프로그래머스 문제풀이' 카테고리의 다른 글
[프로그래머스 Level 2] 프린터 - JavaScript (0) | 2023.01.23 |
---|---|
[프로그래머스 Level 2] 괄호 회전하기 - JavaScript (0) | 2023.01.14 |
[프로그래머스 Level 3] 입국심사 - JavaScript (0) | 2023.01.10 |
[프로그래머스 Level 2] 멀리 뛰기 - JavaScript (0) | 2023.01.06 |
[프로그래머스 Level 2] 점프와 순간 이동 - JavaScript (0) | 2023.01.04 |