행렬의 덧셈
문제 설명
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬의 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
제한 조건
행렬 arr1,arr2의 행과 열의 길이는 500을 넘지 않습니다.
입출력 예
작성코드
public class Solution {
/*
* 행렬의 덧셈
*/
public int[][] solution(int[][] arr1, int[][] arr2){
int[][] answer = new int[arr1.length][arr2.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;
}
}
코드설명
입출력 결과를 보면 이차원 배열이 순서대로 더해져 결과값이 나타나는 규칙을 찾아낼 수 있다. 이 규칙과 중복 for문을 알고 있다면 풀기 쉬운 문제이다.
① 행과 열의 크기가 같으므로 answer의 배열의 크기를 arr1배열의 길이와 arr2 배열의 길이로 선언한다.
② for문을 이용하여 행렬의 행 만큼 반복한다.
③ 이차원 배열이기 때문에 또 한번의 for문을 이용하여 열만큼 반복한다.
④ arr1,arr2 행렬의 index의 값을 더해 answer 행렬의 index에 넣어준다.
다른 사람의 풀이
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;
}
}
그냥 answer를 arr1으로 선언해주고 하는 방법도 있었..다..