행렬의 곱셈
x행렬의 곱셈은, 곱하려는 두 행렬의 어떤 행과 열을 기준으로, 좌측의 행렬은 해당되는 행, 우측의 행렬은 해당되는 열을 순서대로 곱한 값을 더한 값이 들어갑니다. 행렬을 곱하기 위해선 좌측 행렬의 열의 개수와 우측 행렬의 행의 개수가 같아야 합니다. 곱할 수 있는 두 행렬 A,B가 주어질 때, 행렬을 곱한 값을 출력하는 productMatrix 함수를 완성해 보세요.
수학의 행렬 곱셈 방식을 알고 있다면 금방 풀 수 있을 것이다. 반복문의 반복횟수를 배열길이 계산으로 주자니 조금 헷갈리는 부분 말고는 어려울게 없는 문제였다.
x
class ProductMatrix {
public int[][] productMatrix(int[][] A, int[][] B) {
int[][] answer = new int[A.length][B[0].length];
for (int i = 0; i < answer.length; i++) {
for (int j = 0; j < answer[i].length; j++) {
for (int k = 0; k < A[i].length; k++) {
answer[i][j] += (A[i][k] * B[k][j]);
}
}
}
return answer;
}
public static void main(String[] args) {
ProductMatrix c = new ProductMatrix();
int[][] a = { { 1, 2 }, { 2, 3 } };
int[][] b = { { 3, 4 }, { 5, 6 } };
// 아래는 테스트로 출력해 보기 위한 코드입니다.
System.out.println("행렬의 곱셈 : " + c.productMatrix(a, b));
}
}
'공부 > algorithm' 카테고리의 다른 글
[programmers] 최솟값 만들기 (0) | 2018.05.22 |
---|---|
[programmers] 2016년 (0) | 2018.05.22 |
[programmers] 콜라츠 추측 (0) | 2018.05.22 |
[programmers] 나누어 떨어지는 숫자 배열 (0) | 2018.05.22 |
[programmers] 행렬의 덧셈 (0) | 2018.05.21 |
댓글