728x90
이해하기
다차원 행렬의 곱을 구하는 식이 생각나지 않아 검색해봤다.
위 식을 기반으로 해서 풀이해보려 했다.
- A 배열은 행별로 복사해온다.
- B 배열은 열별로 복사해온다.
- 복사한 두 배열을 곱해서 sum을 구한다
- answer 배열에 넣어준다!
여기까지 생각하고는 구현에서 막혔다...
그리고 3x2 배열과 2x4 배열을 계산하면 3x4 배열이 나와야한다는 점을 놓쳐서 answer 배열의 길이를 잘못 지정하기도 하였다.
참고한 블로그⬇️
문제풀이
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++) {
for (int k = 0; k < arr1[0].length; k++) {
answer[i][j] += arr1[i][k] * arr2[k][j];
}
}
}
return answer;
}
}
굳이 나처럼 복사할 필요 없이 i, j, k를 가지고 계산하였다.
k는 arr1에서는 열로, arr2에서는 행으로 사용된다!
그치만 다시 풀이하려고 하면 또 헷갈릴 것 같다...ㅜㅅㅜ
'JAVA > Coding Test Study' 카테고리의 다른 글
[Lv.2] 프로그래머스 - 주차 요금 계산 : Java (0) | 2024.05.30 |
---|---|
[Lv.2] 프로그래머스 - 의상 : Java (0) | 2024.05.24 |
[Lv.2] 프로그래머스 - N개의 최소공배수 : Java (0) | 2024.05.20 |
[Lv.2] 프로그래머스 - 예상 대진표 : Java (0) | 2024.05.20 |
[Lv.0] 프로그래머스 - 직사각형 넓이 구하기 : Java (0) | 2024.05.20 |