Notice
Recent Posts
Recent Comments
Link
천리길도 한걸음부터
문제05. 행렬의 곱셈⭐ 본문
- 저자 권장 시간 : 40분
- 권장 시간 복잡도 : O(N^2)
- 출제 : 연습문제
2차원 행렬 arr1과 arr2를 입력받아 arr1에 arr2를 곱한 결과를 반환하는 solution() 함수를 완성하세요.
제약조건
- 행렬 arr1, arr2의 행과 열의 길이는 2이상 100이하입니다.
- 행렬 arr1, arr2의 데이터는 -10 이상 20 이하인 자연수입니다.
- 곱할 수 있는 배열만 주어집니다.
class Solution {
public int[][] solution(int[][] arr1, int[][] arr2) {
// 1. 행렬 arr1과 arr2의 행과 열의 수
int r1 = arr1.length;
int c1 = arr1[0].length;
int r2 = arr2.length;
int c2 = arr2[0].lenght;
// 2. 결과를 저장할 2차원 배열 초기화
int[][] answer = new int[r1][c2];
// 3. 첫 번째 행렬 arr1의 각 행과 두 번재 행렬 arr2의 각 열에 대해
for(int i=0; i<r1; i++) {
for(int j=0; j<c2; j++) {
// 4. 두 행렬의 데이터를 곱해 결과 리스트에 더함
for (int k=0; i<c1; k++) {
answer[i][j] += arr1[i][k] * arr2[k][i]
}
answer[i][j] += arr1[i][j]*arr2[i][j];
// case1 : answer[0][0] = arr1[0][0]*arr2[0][0];
// case2 : answer[0][0] = arr1[0][1]*arr2[1][0];
// case3 : answer[0][1] = arr1[0][0]*arr2[0][1];
// case4 : answer[0][1] = arr1[0][1]*arr2[1][0];
}
}
return answer;
}
}
'코딩 테스트 합격자 되기_자바💜' 카테고리의 다른 글
문제07 방문 길이⭐⭐ (0) | 2024.08.14 |
---|---|
문제06. 실패율⭐⭐ (0) | 2024.08.12 |
문제04. 모의고사⭐ (0) | 2024.08.08 |
문제03 두 개 뽑아서 더하기⭐ (0) | 2024.08.07 |
문제02 배열 제어하기⭐⭐ (0) | 2024.08.06 |