프로그래머스 코딩테스트_도서실습
[코딩테스트_도서실습] 문자열 - 행렬의 곱셉 - Lv2
러쉬봠
2023. 7. 8. 18:48
문제 설명
2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요.
제한사항
- 행렬 arr1, arr2의 행과 열의 길이는 2 이상 100 이하입니다.
- 행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다.
- 곱할 수 있는 배열만 주어집니다.
입출력 예
나의 풀이
class Solution {
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 ++){
int temp = 0;
for(int k = 0; k < arr2.length; k ++){
temp += arr1[i][k] * arr2[k][j];
}
answer[i][j] = temp;
}
}
return answer;
}
}
다른사람 풀이 - 1
class Solution {
public int[][] solution(int[][] arr1, int[][] arr2) {
// m*n n*k 행렬의 곱셈 결과는 m*k 행렬이다.
// 결과의 배열 생성
int[][] answer = new int[arr1.length][arr2[0].length];
for(int i = 0; i < answer.length; i++){
for(int j = 0; j < answer[i].length; j++){
for(int k = 0; k < arr1[0].length; k++){
answer[i][j] += arr1[i][k]*arr2[k][j];
}
}
}
return answer;
}
}