코딩 테스트/Java

[프로그래머스]Level 1 : 행렬의 덧셈(JAVA)

반응형
행렬의 덧셈
문제 설명

행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 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) {
       if(arr1.length != arr2.length && arr1.length >= 500 ) return arr1;

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

2차원 행렬의 덧셈 문제이다. 
처음에 answer의 값을 초기화시켜주는 과정에서 둘 다 길이를 arr1.length로 초기화를 하는 바람에 테스트 2 출력에서 애를 좀 먹었다.

그 부분 말고는 크게 어려운 점은 없었지만 다른 사람의 코드를 참고했을 때 와 이런 방법이 있구나 하고 아차! 하는 코드가 있었다.
배열 answer에 arr1를 대입하고, for문을 돌려서 answer에 arr2를 더하는 방법이다!

 

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges

반응형