본문 바로가기
코딩테스트/Java

[Level1] 행렬의 덧셈 답안 및 풀이

by SRin23 2021. 7. 14.

◇ 문제 설명

행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 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 = {};
        return answer;
    }
}

 


◇ 답안

class Solution {
    public int[][] solution(int[][] arr1, int[][] arr2) {
        int[][] answer = {};
        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;
    }
}

 

◇ 답안 풀이

(※ 실행 흐름 순으로 해석됩니다.)

class Solution {
    public int[][] solution(int[][] arr1, int[][] arr2) {

        //행렬의 크기에 맞는 2차원 배열 생성
        int[][] answer = new int[arr1.length][arr1[0].length];

 

        //2중 for문으로 2차원 배열에 접근
        for(int i = 0; i<arr1.length; i++){
            for(int j = 0; j<arr1[i].length; j++){

                //arr1과 arr2의 같은 행,열에 있는 값 더하여 answer에 저장
                answer[i][j] = arr1[i][j] + arr2[i][j];
            }
        }
        return answer;
    }
}

 

◇ 실행결과

행렬의 덧셈 실행결과

 

◇ 출처

https://programmers.co.kr/learn/challenges

 

코딩테스트 연습

기초부터 차근차근, 직접 코드를 작성해 보세요.

programmers.co.kr

 

댓글