[프로그래머스] 행렬의 덧셈 문제 풀이(Java)

이하영·2023년 7월 30일
0

코딩테스트

목록 보기
3/21
post-thumbnail

✔ 문제 설명

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


✔ 제한사항

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

💬 내 풀이

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

어려운 문제는 아니었지만 다차원 배열은 매번 풀 때마다 헷갈린다...

  • arr1.length는 다차원 배열 arr1의 행의 개수를 의미한다.
  • arr1[i].length는 다차원 배열 arr1의 i번째 행의 열의 개수를 의미한다.

✏️ 2차원 배열 공부하기(참고)

프로그래머스 자바 입문 - 2차원 배열

  • 2차원 배열이란 배열의 배열이다.
  • 2차원 배열에 값을 저장하는 방법
    • 만약 array4[1] = 10 ; 이렇게 사용하면 오류!!
      array4[1] 은 또 다른 1차원 배열을 가리킬 수 있는 참조형 변수이기 때문에
      값을 담을수는 없다.
      array4[0][0] = 10;
  • 가변크기의 2차원 배열을 생성하는 방법
int[][] array5 = new int[3][];
    //위와 같이 선언하면 array5는 3개짜리 배열을 참조한다. 
    //3개짜리 배열은 아직 참조하는 배열이 없다는 것을 의미.

    array5[0] = new int[1]; //정수를 하나 담을 수 있는 배열을 생성해서 array5 의 0 번째 인덱스가 참조한다.  
    array5[1] = new int[2]; //정수를 두개 담을 수 있는 배열을 생성해서 array5 의 1 번째 인덱스가 참조한다.  
    array5[2] = new int[3]; //정수를 세개 담을 수 있는 배열을 생성해서 array5 의 2 번째 인덱스가 참조한다. 
profile
안녕하세요, 웹 개발자 이하영입니다!

1개의 댓글

comment-user-thumbnail
2023년 7월 30일

좋은 글 감사합니다.

답글 달기