N

(프로그래머스 JS)최적의 행렬 곱셈 본문

프로그래머스 알고리즘/3단계

(프로그래머스 JS)최적의 행렬 곱셈

naeunchan 2022. 7. 17. 18:58
728x90
반응형

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

백준 문제에도 동일한 유형이 있다.

아래 링크에 설명이 있으니 참고!

https://eunchanee.tistory.com/294

 

(백준 c++)11049 행렬 곱셈 순서

문제 크기가 N×M인 행렬 A와 M×K인 B를 곱할 때 필요한 곱셈 연산의 수는 총 N×M×K번이다. 행렬 N개를 곱하는데 필요한 곱셈 연산의 수는 행렬을 곱하는 순서에 따라 달라지게 된다. 예를 들어, A

eunchanee.tistory.com

function solution(matrix_sizes) {
    const { length } = matrix_sizes;
    const dp = Array.from({length: length + 1}, () => Array(length + 1).fill(0));
    
    matrix_sizes = [[0, 0], ...matrix_sizes];
    
    for(let i = 1; i < length; i++){
        for(let x = 1; x + i <= length; x++){
            const y = x + i;
            
            dp[x][y] = Infinity;
            
            for(let j = x; j < y; j++){
                dp[x][y] = Math.min(dp[x][y], dp[x][j] + dp[j + 1][y] + matrix_sizes[x][0] * matrix_sizes[j][1] * matrix_sizes[y][1]);
            }
        }
    }
    
    return dp[1][length];
}
728x90
반응형