2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요.
[[1, 4], [3, 2], [4, 1]]
[[3, 3], [3, 3]]
[[15, 15], [15, 15], [15, 15]]
[[2, 3, 2], [4, 2, 4], [3, 1, 4]]
[[5, 4, 3], [2, 4, 1], [3, 1, 1]]
[[22, 22, 11], [36, 28, 18], [29, 20, 14]]
function solution(arr1, arr2) {
var answer = [];
for (let i = 0; i < arr1.length; i++) {
let row = [];
for (let j = 0; j < arr2[0].length; j++) {
let temp = 0;
for (let k = 0; k < arr1[0].length; k++) {
temp += arr1[i][k] * arr2[k][j];
}
row.push(temp);
}
answer.push(row);
}
return answer;
}
알고리즘 코딩 테스트의 관점에서 평가하면 다음과 같습니다:
최종적으로, 개선된 코드는 다음과 같습니다:
function solution(arr1, arr2) {
var answer = [];
for (let i = 0; i < arr1.length; i++) {
let row = [];
for (let j = 0; j < arr2[0].length; j++) {
let temp = 0;
for (let k = 0; k < arr1[0].length; k++) {
temp += arr1[i][k] * arr2[k][j];
}
row.push(temp);
}
answer.push(row);
}
return answer;
}
// 사용 예시
const arr1 = [[1, 4], [3, 2], [4, 1]];
const arr2 = [[3, 3], [3, 3]];
const result = solution(arr1, arr2);
console.log(result);
// 출력: [[15, 15], [15, 15], [15, 15]]
const arr3 = [[2, 3, 2], [4, 2, 4], [3, 1, 4]];
const arr4 = [[5, 4, 3], [2, 4, 1], [3, 1, 1]];
const result2 = solution(arr3, arr4);
console.log(result2);
// 출력: [[22, 22, 11], [36, 28, 18], [29, 20, 14]]
이 코드는 주어진 문제를 올바르게 해결하며, 알고리즘 코딩 테스트의 관점에서도 적절한 풀이입니다.