Programmers 행렬의 곱셈, Javascript

cptkuk91·2022년 9월 26일
1

Algorithm

목록 보기
106/161

문제

https://school.programmers.co.kr/learn/courses/30/lessons/12949

코드

function solution(arr1, arr2) {
	let result = [];
    
    for(let i = 0; i < arr1.length; i++){
    	let newResult = [];
        for(let j = 0; j < arr2[0].length; j++){
			let flag = 0;
            for(let z = 0; z < arr2.length; z++){
            	flag += arr1[i][z] * arr2[z][j];
            }
            newResult.push(flag);
        }
		result.push(newResult);
    }
    return result;
}

코드 풀이

문제 풀기에 앞서.. 행렬의 곱셈에 대해서 알아야 했습니다.

(복잡한 사진..) 코드를 바탕으로 사진을 보면, 빨주노, 초파보, 찐파갈회 색이 세트입니다.

arr1[0][0] arr2[0][0] => 2 5 = 10
arr1[0][1] arr2[1][0] => 3 2 = 6
arr1[0][2] arr2[2][0] => 2 3 = 6
따라서 10 + 6 + 6, result [[22]] 가 들어갑니다.

arr1[0][0] arr2[0][1] => 2 4 = 8
arr1[0][1] arr2[1][1] => 3 4 = 12
arr1[0][2] arr2[2][1] => 2 1 => 2
따라서 8 + 12 + 2, result[[22, 22]] 가 됩니다.

arr1[0][0] arr2[0][2] => 2 3 = 6
arr1[0][1] arr2[1][2] => 3 1 = 3
arr1[0][2] arr2[2][2] => 2 1 = 2
따라서 6 + 3 + 2, result[[22, 22, 11]]이 들어갑니다.

위와 같이 반복해서 result값을 만들어 출력하면 됩니다.

profile
메일은 매일 확인하고 있습니다. 궁금하신 부분이나 틀린 부분에 대한 지적사항이 있으시다면 언제든 편하게 연락 부탁드려요 :)

0개의 댓글