(JAVA) 행렬의 곱셈 - 프로그래머스
[문제]
문제 설명
2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요.
제한 사항
- 행렬 arr1, arr2의 행과 열의 길이는 2 이상 100 이하입니다.
- 행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다.
- 곱할 수 있는 배열만 주어집니다.
입출력 예
2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요.
- 행렬 arr1, arr2의 행과 열의 길이는 2 이상 100 이하입니다.
- 행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다.
- 곱할 수 있는 배열만 주어집니다.
| arr1 | arr2 | return | 
|---|---|---|
[풀이]
해설
이 문제는 행렬의 곱셈 식만 알고 있다면 쉽게 풀 수 있는 문제이다.
단, for문에서 해당되는 인자값(i, j, n)을 헷갈리지 않는 것이 제일 중요하다.
행렬의 곱셈식은 참고 사항에 있다
코드
    public int[][] solution(int[][] arr1, int[][] arr2) {
        int[][] answer = new int[arr1.length][arr2[0].length];
        for (int i = 0; i < arr1.length; i++)
            for (int j = 0; j < arr2[0].length; j++)
                for (int n = 0; n < arr1[0].length; n++)
                    answer[i][j] += (arr1[i][n] * arr2[n][j]);
        return answer;
    }
참고(행렬의 곱셈식)
행렬 A(mXn)   행렬  B(nXp) = 행렬 S(mXp)
 =    +  + ⋯ +  =  
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Author And Source
                            
                            이 문제에 관하여((JAVA) 행렬의 곱셈 - 프로그래머스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://velog.io/@delay/programmers12949
                            
                            
                            
                                저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
                            
                            
                                
                                
                                 우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
이 문제는 행렬의 곱셈 식만 알고 있다면 쉽게 풀 수 있는 문제이다.
단, for문에서 해당되는 인자값(i, j, n)을 헷갈리지 않는 것이 제일 중요하다.
행렬의 곱셈식은 참고 사항에 있다
    public int[][] solution(int[][] arr1, int[][] arr2) {
        int[][] answer = new int[arr1.length][arr2[0].length];
        for (int i = 0; i < arr1.length; i++)
            for (int j = 0; j < arr2[0].length; j++)
                for (int n = 0; n < arr1[0].length; n++)
                    answer[i][j] += (arr1[i][n] * arr2[n][j]);
        return answer;
    }행렬 A(mXn)   행렬  B(nXp) = 행렬 S(mXp)
 =    +  + ⋯ +  =  
Author And Source
이 문제에 관하여((JAVA) 행렬의 곱셈 - 프로그래머스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@delay/programmers12949저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)