Language/JAVA

[프로그래머스] 행렬의 덧셈

paran21 2022. 1. 15. 10:49

class Solution {
    public int[][] solution(int[][] arr1, int[][] arr2) {
        //배열은 길이 지정 만드시 해줘야 한다!
        //배열에는 length 필드가, String은 length() 메서드가 있다.
        int[][] answer = new int[arr1.length][arr1[0].length];

        //answer.length대신 arr1.length써도 결과는 동일
        //for문 중복사용 시 length를 동일하게 사용하면 아에 런타임오류가 발생??
        for (int i = 0; i < answer.length; i++){
            for (int j = 0; j < answer[0].length; j++){
                answer[i][j] = arr1[i][j] + arr2[i][j];
            }
        }
        return answer;
    }

 

처음에 문제를 잘못 이해해서 행과 열의 크기가 같다는 것이 한 배열에서도 같다는 것으로 잘못 이해했다.

1X1, 2X2, 3X3 이런식으로??(사실 예제만 봐도 아니라는 것을 알 수 있었어야 했다...)

 

그래서 굳이 행 열 크기 변수값을 다르게 주지 않고 모두 arr1.length를 썼다니 런타임 오류가 발생했다.

배열은 꼭 크기지정을 해줘야 한다고 해서 위에서 answer의 크기를 지정했는데도 런타임 오류가 발생했다.

for문 중복 사용할 때 변수 사용이 중복되서 발생하는 문제인거 같은데, 정확하지는 않다.

다른 문제 풀면서 더 확인해봐야 할 것 같다.

 

이중배열 행렬 크기 구하기

고정길이는 array[0].length를, 가변길이는 for문을 사용해 array[i].length를 사용