이 글은 문제를 정리하고 저의 풀이를 보여드리는 거예요. 실제로 문제를 보고 풀어보세요. 클릭! 클릭! 해보세요! 🖱️
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다.
2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.
int[][] array4 = new int[5][7];
array4[3][6] = 10;
❗ array4[1] = 10 ;
➡️ 🚫이렇게 사용하면 오류!!🚫
❗array4[1] 은 또 다른 1차원 배열을 가리킬 수 있는 참조형 변수이기 때문에 값을 담을수는 없다.
int[][] array6 = {{1}, {2,3}, {4,5,6}};
int[][] array5 = new int[3][];
➡️ array5는 3개짜리 배열을 참조한다.
➡️ 3개짜리 배열은 아직 참조하는 배열이 없다
array5[0] = new int[1];
➡️ 정수를 하나 담을 수 있는 배열을 생성
➡️ array5 의 0 번째 인덱스가 참조
array5[1] = new int[2];
➡️ 정수를 두 개 담을 수 있는 배열을 생성
➡️ array5 의 1 번째 인덱스가 참조
array5[2] = new int[3];
➡️ 정수를 세 개 담을 수 있는 배열을 생성
➡️ array5 의 2 번째 인덱스가 참조
new int[arr1.length][]
) new int[arr1.length][arr1[0~n].length]
) public class Solution {
public static int[][] solution(int[][] arr1, int[][] arr2) {
int columnLength = arr1.length;
int[][] answer = new int[columnLength][];
for (int column = 0; column < columnLength; column++) {
int rowLength = arr1[column].length;
answer[column] = new int[rowLength];
for(int row = 0; row < rowLength; row++) {
answer[column][row] = arr1[column][row] + arr2[column][row];
}
}
return answer;
}
}
answer[column] = new int[rowLength];
을 선언하면 row가 바뀔 때 마다 행이 초기화 되기 때문에 꼭! 첫번째 for문 안에서 미리 선언하고 난 후에 두번째 for문에서 각 row에 값을 넣어줘야 한다.프로그래머스
사이트의 자바입문-2차원배열
글 보러가기 클릭! 🖱️