TIL | [알고리즘] 행렬의 덧셈(Java)

hyemin·2022년 3월 12일
0

알고리즘

목록 보기
10/38
post-thumbnail

THINKING

  1. arr1과 arr2 배열의 행/열의 크기가 같으므로 답이 저장될 answer배열의 행/열 크기도 arr1과 같이 선언하자
    • int[][] answer = new int [arr1.length][arr1[0].lenght];
  2. for문으로 배열의 행의 길이만큼, 열의 길이만큼 반복해 값을 더하자

내 풀이

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 = [[1,2],[2,3]]1 2
2 3
의 구조로 22열

arr2 = [[1],[2]]1
2
의 구조로 21열

arr3 = [[1,2]]1 2
의 구조로 12

arr[n].length(n+1)행의 열 길이(행마다 담긴 원소 개수)를 뜻한다.

String arr[][] = new String[3][];

String arr[][] = {
	{"A", "B", "C"},
	{"D", "E"},
	{"F", "G", "H", "I"}
};

// 각 행마다 열의길이 구하기(arr[i] 길이)
arr[0].lengrth	// 1행의 열 길이 - 3
arr[1].lengrth	// 2행의 열 길이 - 2
arr[2].lengrth	// 3행의 열 길이 - 4
arr[3].lengrth	// null


int[][] answer = new int [arr1.length][arr1[0].length];

2차원 배열 answer를 선언하면서 열의 길이를 arr1[0].length로 정한 이유는 어떤 테스트 케이스이든 1행 이상의 행을 가지기 때문이다.

만약, arr[1].length로 열의 길이를 정했다면 아래와 같은 경우 오류가 생길 것이다.

// 1행 4열의 2차원 배열
String exam[][] = new String[1][4];

String exam[][] = {
	{"A", "B", "C", "D"}
};

// 열의길이 구하기(arr[i] 길이)
arr[0].lengrth	// 1행의 열 길이 - 4
arr[1].lengrth	// null

0개의 댓글