행렬의 덧셈
2023. 12. 1. 11:56ㆍ카테고리 없음
https://school.programmers.co.kr/learn/courses/30/lessons/12950
//import java.util.Arrays;
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[0].length; j++) {
answer[i][j] = arr1[i][j] + arr2[i][j];
}
}
return answer;
// sout println(Arrays.deepToStirng(answer));
}
}
//import java.util.Arrays;
class Solution {
public int[][] solution(int[][] arr1, int[][] arr2) {
}
}
반환값은 정수 타입의 2차원 배열이고, 파라미터는 정수 타입 2차원 배열 두 개를 받는다.
받는 건 행과 열이기 때문에 요소 안의 요소의 길이는 2로 정해져 있다.
int[][] answer = new int[arr1.length][arr1[0].length];
먼저 반환될 배열을 선언하고 배열의 길이를 할당한다.
[arr1.length] = 가장 바깥 요소의 길이다.
[arr1[0].length] = 가장 안쪽 요소 길이다.
answer 와 arr1, arr2 의 길이는 같아야 한다. 그래서 [arr1.length] [arr1[0].length] 라고 적었다. 큰 요소 안의 작은 요소 길이도 같아야 하니까.
for (int i = 0; i < arr1.length; i++) {
for (int j = 0; j < arr1[0].length; j++) {
answer[i][j] = arr1[i][j] + arr2[i][j];
}
}
인덱스 0번째 요소 안으로 들어가서 작은 요소값을 다 돌고 그 다음에 인덱스 1번째 요소의 안으로 들어가서 작은 요소값을 다 도는 식으로 for 문을 설계했다.
answer, arr1, arr2 의 인덱스 번호와 배열의 길이는 똑같기 때문에 이 세 배열의 첫 번째 자리에 i를 넣고 두 번째 자리에 j 를 넣었다.
return answer;
// sout println(Arrays.deepToStirng(answer));
arr1 과 arr2 가 더해진 answer 을 반환한다.
주석 처리된 것은 인텔리제이에서 println 으로 한 번 출력 테스트를 한 것이다.
2차원 배열이라서 Arrays.ToString 을 사용하면 주소가 출력된다.
Arrays.deepToString을 사용해야 내가 원하는 answer 요소 하나하나를 볼 수 있었다.