10. 행렬의 덧셈

김영민·2022년 1월 27일
0

문제📃

1. 문제 설명

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

2. 제한 조건

행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.

3.입출력 예

arr1arr2return
[[1, 2], [2, 3]][[3, 4], [5, 6]][[4, 6], [7, 9]]
[1], [2][[3], [4]][[4], [6]]

풀이

나의 정답👨‍💻

public class _10_MatrixAddiction {

    // 두 개의 2차원 정수 배열을 매개변수로 받고, 2차원 정수 배열을 리턴값으로 돌려주는 메소드
    public int[][] solution(int[][] arr1, int[][] arr2) {
    	
        // 배열 'answer'의 길이를 설정
        // ('arr1'과 'arr2'의 길이는 같기 때문에 'arr2'의 길이로 설정도 무방함)
        int[][] answer = new int [arr1.length][arr1[0].length];        
        
        // 이중 반복문을 돌려서 배열 안에 있는 배열의 객체에 접근함
        // ('arr1'과 'arr2'의 길이는 같기 때문에 'arr2.length'로 구하여도 무방함)
        for (int i = 0; i < arr1.length; i ++) {        
       
            // (이때도 마찬가지로 'arr2[i].length'로 해도 무방함)
            for (int j = 0; j < arr1[i].length; j ++) {
            
                //그렇게 나온 배열 내에 있는 i번째 배열의 j번째 객체끼리 합을 구합
                answer[i][j] = arr1[i][j] + arr2[i][j];
        	}        	
        }       
        return answer;
    }

테스트용 코드🎯

    public static void main(String[] args) {
        MatrixAddiction matrixaddiction = new MatrixAddiction();
		
        int[][] arr1 = {{1,2},{2,3}};
        int[][] arr2 = {{3,4},{5,6}};
		
        int[][] arr3 = {{1},{2}};
        int[][] arr4 = {{3},{4}};
		
        System.out.println(Arrays.deepToString(matrixaddiction.solution(arr1, arr2))); 
        // [[4, 6], [7, 9]]를 출력
        System.out.println(Arrays.deepToString(matrixaddiction.solution(arr3, arr4)));
        // [[4], [6]]을 출력
    }
}
profile
Macro Developer

0개의 댓글