2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요.
- 행렬 arr1, arr2의 행과 열의 길이는 2 이상 100 이하입니다.
- 행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다.
- 곱할 수 있는 배열만 주어집니다.
arr1 | arr2 | return |
---|---|---|
이 문제는 행렬의 곱셈 식만 알고 있다면 쉽게 풀 수 있는 문제이다.
단, for문에서 해당되는 인자값(i, j, n)을 헷갈리지 않는 것이 제일 중요하다.
행렬의 곱셈식은 참고 사항에 있다
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 n = 0; n < arr1[0].length; n++)
answer[i][j] += (arr1[i][n] * arr2[n][j]);
return answer;
}
행렬 A(mXn) 행렬 B(nXp) = 행렬 S(mXp)
= + + ⋯ + =
첫 줄의 public 뒤의 int[][]의 역할은 뭔가요?
타입 선언인가요?