알고리즘/프로그래머스

행렬의 덧셈(JAVA)

mrban 2022. 1. 15. 16:07

1. 문제

행과 열의 길이가 같은 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수를 만드시오.

 

2. 제한
행렬 arr1, arr2의 행과 열의 길이는 500이하입니다.
 
3. 정답
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;
    }
}

4. 설명

4-1. 이차원 배열 answer의 행과 열의 크기를 기존의 arr1의 행과 열의 크기와 일치하게 하고 선언한다.

4-2. 이중 for문을 돌린다. 바깥쪽 for문은 열의 크기만큼 돌고, 안쪽 for문은 행의 크기만큼 돈다.

4-3. 이중 for문을 돌면서 arr1과 arr2의 같은 위치의 값들을 더하여 answer 행렬의 같은 위치에 넣는다.

4-4. answer 값을 return한다.

 

5. 참고

5-1. arr1과 arr2의 행렬의 길이가 같기 때문에 2차원 배열 answer을 만들때 어떤 값의 행, 렬의 길이로 해도 상관없다. 

5-2. 이차원 배열은 일차원 배열들의 배열이라는 것을 명심하자. 따라서 arr1.length는 열의 길이가 되는 것이다. 1차원 배열들의 개수가 곧 2차원 배열의 길이이기 때문이다.

5-2. arr1[i].length는 이차원 배열 안에 있는 한 일차원 배열의 길이가 된다. 즉, 행렬의 행의 길이가 되는 것이다.

'알고리즘 > 프로그래머스' 카테고리의 다른 글

내적(JAVA)  (0) 2022.01.17
부족한 금액 계산하기(JAVA)  (0) 2022.01.15
핸드폰 번호 가리기(JAVA)  (0) 2022.01.15
x만큼 간격이 있는 n개의 숫자(JAVA)  (0) 2022.01.15
평균구하기(JAVA)  (0) 2022.01.15