본문 바로가기

코딩 테스트

[프로그래머스] (Lv.1) 행렬의 덧셈

728x90

문제


행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.

 

 

-  출력 예시  -

정답 코드


<  내 정답 코드  >

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[0].length; j++) {
                answer[i][j] = arr1[i][j] + arr2[i][j];
            }
        }
        return answer;
    }
}

 

<  타인 답변 코드  >

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;
    }
}

이것을 주의하자!


- 중복 for문을 통해서 작성하면 된다. 어려운 지점은 없다.

 

- 다만 새로운 배열을 만들어 arr1[] 과 arr2[]를 합치는 것도 있지만, 어짜피 배열 두개의 총합이 결과이니 직접 arr1[]에 arr2[]를 더하는 방법도 좋은 생각인듯! 물론 이렇게 하면 arr1[]은 본래의 값을 잃어 버리겠지만 말이다.