728x90
코드 힌트
- 행렬의 크기 설정하기
- 결과 행렬의 크기를 설정할 때, 행렬 곱셈의 규칙에 따라 결과 행렬의 행 수는 첫 번째 행렬의 행 수와 동일하고, 열 수는 두 번째 행렬의 열 수와 동일해야 합니다.
- 이렇게 설정한 결과 행렬에 각 요소를 저장하고 계산할 수 있습니다.
- 행렬 곱셈 원리 이해하기
- 행렬 곱셈에서는 첫 번째 행렬의 행과 두 번째 행렬의 열을 곱하여 새로운 행렬을 생성합니다.
- 각 결과 행렬의 요소는 첫 번째 행렬의 해당 행과 두 번째 행렬의 해당 열의 곱을 모두 더한 값입니다.
- 계산 방법
- 각 결과 행렬의 요소를 계산하기 위해, 첫 번째 행렬의 해당 행과 두 번째 행렬의 해당 열을 곱한 뒤, 그 결과를 합산합니다.
- 이를 위해 반복문을 사용하여 각 요소를 계산하고 결과를 저장합니다.
- 예시 설명
- 만약 첫 번째 행렬이 2x3 크기이고 두 번째 행렬이 3x4 크기라면, 결과 행렬은 2x4 크기가 됩니다.
- 결과 행렬의 각 요소는 첫 번째 행렬의 행과 두 번째 행렬의 열을 곱한 값을 모두 더한 결과입니다. 예를 들어, 결과 행렬의 (0,0) 요소는 첫 번째 행렬의 0행과 두 번째 행렬의 0열을 곱한 값입니다.
정답은 더보기 클릭
더보기
class Solution {
public int[][] solution(int[][] arr1, int[][] arr2) {
// 결과 행렬의 크기는 arr1의 행 개수와 arr2의 열 개수에 맞춥니다.
// arr1의 행 수와 arr2의 열 수를 기준으로 결과 행렬을 초기화합니다.
int[][] result = new int[arr1.length][arr2[0].length];
// 결과 행렬의 각 요소를 계산합니다.
for (int i = 0; i < result.length; i++) { // 결과 행렬의 각 행을 순회합니다.
for (int j = 0; j < result[i].length; j++) { // 결과 행렬의 각 열을 순회합니다.
// i행 j열의 값 계산을 위해 행렬 곱셈 메서드를 호출합니다.
result[i][j] = getElementValue(arr1, arr2, i, j);
}
}
return result; // 최종적으로 계산된 결과 행렬을 반환합니다.
}
// 행렬 곱셈을 수행하는 메서드입니다.
public static int getElementValue(int[][] arr1, int[][] arr2, int i, int j) {
int result = 0;
// arr1의 i행과 arr2의 j열을 곱하여 결과를 계산합니다.
for (int k = 0; k < arr1[0].length; k++) {
result += arr1[i][k] * arr2[k][j];
}
return result; // 계산된 결과를 반환합니다.
}
}
728x90
'프로그래머스(Java) > Level 2' 카테고리의 다른 글
[프로그래머스] 튜플 (0) | 2024.08.14 |
---|---|
[프로그래머스] [1차] 캐시 (0) | 2024.08.14 |
[프로그래머스] n^2 배열 자르기 (0) | 2024.08.12 |
[프로그래머스] 게임 맵 최단거리 (0) | 2024.08.01 |
[프로그래머스] 연속 부분 수열 합의 개수 (0) | 2024.07.26 |