1. 문제
행과 열의 길이가 같은 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수를 만드시오.
2. 제한
행렬 arr1, arr2의 행과 열의 길이는 500이하입니다.
3. 정답
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;
}
}
4. 설명
4-1. 이차원 배열 answer의 행과 열의 크기를 기존의 arr1의 행과 열의 크기와 일치하게 하고 선언한다.
4-2. 이중 for문을 돌린다. 바깥쪽 for문은 열의 크기만큼 돌고, 안쪽 for문은 행의 크기만큼 돈다.
4-3. 이중 for문을 돌면서 arr1과 arr2의 같은 위치의 값들을 더하여 answer 행렬의 같은 위치에 넣는다.
4-4. answer 값을 return한다.
5. 참고
5-1. arr1과 arr2의 행렬의 길이가 같기 때문에 2차원 배열 answer을 만들때 어떤 값의 행, 렬의 길이로 해도 상관없다.
5-2. 이차원 배열은 일차원 배열들의 배열이라는 것을 명심하자. 따라서 arr1.length는 열의 길이가 되는 것이다. 1차원 배열들의 개수가 곧 2차원 배열의 길이이기 때문이다.
5-2. arr1[i].length는 이차원 배열 안에 있는 한 일차원 배열의 길이가 된다. 즉, 행렬의 행의 길이가 되는 것이다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
내적(JAVA) (0) | 2022.01.17 |
---|---|
부족한 금액 계산하기(JAVA) (0) | 2022.01.15 |
핸드폰 번호 가리기(JAVA) (0) | 2022.01.15 |
x만큼 간격이 있는 n개의 숫자(JAVA) (0) | 2022.01.15 |
평균구하기(JAVA) (0) | 2022.01.15 |