실력 향상 일지/프로그래머스

[Java] 행렬의 덧셈

juniordev 2022. 11. 7. 23:01

문제 설명 및 입출력 예시

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

int[][] answer의 크기를 int[arr1.length][arr1[0].length]로 지정해준다.

그다음에 이중포문을 돌며 값을 더해준다.

 


 

회고

이중배열이 나와서 상당히 당황했다

arr1.length는 arr1[][]의 전체 길이가 나오므로 2인 게 당연하다 (0부터 시작이면 1이지)

그러니까 arr1[0].length라고 적어야 되는 게 당연하다.

그냥 적으면 값이 두배가 되므로 첫 번째 배열의 개수를 적어야 된다.

처음에 openjdk 64-bit server vm warning 이런 에러가 떴다.

뭐지 싶어서 검색을 하다가 그냥 포기하고 여러번 시도해봤더니 그냥 내가 코드 자체를 잘못 짜서 그런 거였다ㅋㅋ


💻프로그래머스 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12950