행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.
arr1 arr2 return [[1,2],[2,3]] [[3,4],[5,6]] [[4,6],[7,9]] [[1],[2]] [[3],[4]] [[4],[6]]
class Solution {
public int[][] solution(int[][] arr1, int[][] arr2) {
int[][] answer = new int[arr1.length][arr1[0].length];
for(int i=0; i<arr1.length; i++){
for(int j=0; j<arr1[i].length; j++){
answer[i][j] = arr1[i][j] + arr2[i][j];
}
}
return answer;
}
}
int[][] answer = new int[arr1.length]arr1[0].length]; 전에 new int[arr1.length][arr2.length] 로 설정하니 실행결과가 다르게 나왔다.
일반적으로 행렬의 덧셈 연산을 수행할 때는 두 행렬의 행과 열의 크기가 동일해야 합니다. 따라서 코드 작성자는 arr1의 행의 개수는 arr1.length로, 열의 개수는 arr1[0].length로 가정하고 있습니다.
만약 arr2.length를 사용하여 초기화하면, arr2의 행의 개수를 기준으로 answer 배열을 초기화하게 됩니다. 그러나 문제에서는 arr1과 arr2의 행과 열의 크기가 동일하다는 가정이 있기 때문에 arr1의 첫 번째 행의 길이 arr1[0].length로 초기화하는 것이 올바릅니다.
class Solution {
public int[][] solution(int[][] arr1, int[][] arr2) {
int[][] answer = {};
answer = arr1;
for(int i=0; i<arr1.length; i++){
for(int j=0; j<arr1[0].length; j++){
answer[i][j] += arr2[i][j];
}
}
return answer;
}
}