12949. 행렬의 곱셈
업데이트 시간 : 2024-02-01 13:11:48 +0000[level 2] 행렬의 곱셈 - 12949
성능 요약
메모리: 74.5 MB, 시간: 1.55 ms
구분
코딩테스트 연습 > 연습문제
채점결과
정확성: 100.0
합계: 100.0 / 100.0
제출 일자
2024년 2월 4일 22:12:1
문제 설명
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]] |
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
💡 Solutions
📄 행렬의 곱셈.java
class Solution {
public int[][] solution(int[][] arr1, int[][] arr2) {
int row_arr1 = arr1.length;
int col_arr1 = arr1[0].length;
int row_arr2 = arr2.length;
int col_arr2 = arr2[0].length;
int[][] answer = new int[row_arr1][col_arr2];
for(int i = 0; i < row_arr1; i++){
for(int j = 0; j < col_arr2; j++){
for(int k =0; k < col_arr1; k++){
answer[i][j] += (arr1[i][k] * arr2[k][j]);
}
}
}
return answer;
}
}