class Solution {
public int[][] solution(int[][] arr1, int[][] arr2) {
int[][] answer = {{},{}};
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;
}
}
자바 배열의 특성을 제대로 이해하지 못해 꽤나 애를 먹었던 문제.
처음엔 answer 배열의 인덱스를 지정하지 않아서 인덱스 범위 초과 오류가 났었고,
answer = new int[arr1.length][arr1.length];
이렇게 범위를 지정했다가 2차원 배열의 특성을 몰라 테스트에 통과하지 못했었다.
answer의 인덱스 길이를 arr1의 인덱스 길이와 같게 설정한 것은 맞았으나,
2차원 배열이기 때문에 0번째 인덱스에 접근 한 후의 길이도 담아야 했었다.
이걸 몰라 결국 스스로 풀이하지 못하고, 팀원의 도움을 받아 풀게 되었다.
class Solution {
public int[][] solution(int[][] arr1, int[][] arr2) {
for (int i = 0; i < arr1.length; i++) {
for (int j = 0; j < arr1[0].length; j++) {
arr1[i][j] += arr2[i][j];
}
}
return arr1;
}
}
다른 팀원의 답을 보니 이러한 풀이도 가능하다는 것을 알게 되었는데, 문제를 시작할 때 기본적으로
int[][] answer = {{},{}};
라인이 있었기에 반드시 answer에 담아야 한다는 내 강박을 깨부순 멋진 답이었다.