개발/Coding Test - Java

[Java] 프로그래머스 코딩테스트 - 행렬의 곱셈

seopport 2024. 8. 10. 16:08
728x90
반응형

코딩테스트 메인 이미지
코딩테스트 - 행렬의 곱셈

 

 문제 설명

  • 2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요.

 

 제한 조건

  • 행렬 arr1, arr2의 행과 열의 길이는 2 이상 100 이하입니다.
  • 행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다.
  • 곱할 수 있는 배열만 주어집니다.

 

 입출력 예

arr1 arr2 return
[[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]]

 

 내 코드 : 성공

class Solution {
    public int[][] solution(int[][] arr1, int[][] arr2) {
        int len1 = arr1.length;
        int col1 = arr1[0].length;
        
        int len2 = arr2.length;
        int col2 = arr2[0].length;
        int[][] answer = new int[len1][col2];
        
        // arr1 이중 배열을 돌리기 위한 for 문
        for(int i = 0; i < len1; i ++) {
            
            for(int j = 0; j < col2; j ++) {
                
                for(int k = 0; k < col1; k ++) {
                    answer[i][j] += arr1[i][k] * arr2[k][j];
                }
            }
        }
        
        return answer;
    }
}

 

 

 참고 페이지

프로그래머스 - 코딩테스트 연습 - 행렬의 곱셈

 

프로그래머스

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

programmers.co.kr

 

728x90
반응형