[ 문제 설명 ]
[ 아이디어 ]
- 일단 answer 배열에 크기에 맞게 0으로 초기화
- 2중 for문으로 돌고 각 행렬의 곱셈은 배열 메소드 체이닝을 통해 처리
[ 코드 ]
function solution(arr1, arr2) {
var answer = Array.from(Array(arr1.length), () => Array(arr2[0].length).fill(0));
for (let i = 0; i < arr1.length; i++) {
for (let j = 0; j < arr2[0].length; j++) {
answer[i][j] = arr1[i].map((item, index) => item * arr2[index][j]).reduce((a, b) => a + b, 0);
}
}
return answer;
}
[ 다른 분 코드 ]
1. 극강의 메소드 체이닝을 활용한 예
function solution(arr1, arr2) {
return arr1.map((row) => arr2[0].map((x,y) => row.reduce((a,b,c) => a + b * arr2[c][y], 0)))
}
2. 가장 직관적인 3중 for문 예
function solution(arr1, arr2) {
var answer = [];
arr1.forEach(row => answer.push(Array(arr2[0].length).fill(0)));
for(let i = 0; i < arr1.length; i++) {
for(let j = 0; j < arr2[0].length; j++) {
for(let k = 0; k < arr2.length; k++) {
answer[i][j] += arr1[i][k] * arr2[k][j];
}
}
}
return answer;
}
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 이진 변환 반복하기 - 자바스크립트 (0) | 2021.12.06 |
---|---|
[프로그래머스] 땅따먹기 - 자바스크립트 (0) | 2021.09.03 |
[프로그래머스] 2018 KAKAO > 뉴스 클러스터링 - 자바스크립트 (0) | 2021.08.30 |
[프로그래머스] 위클리 챌린지 > 4주차 - 자바스크립트 (0) | 2021.08.23 |
[프로그래머스] 위클리 챌린지 > 2주차 - 자바스크립트 (0) | 2021.08.17 |
댓글