알고리즘 (JAVA) 003

2m·2022년 7월 18일
0

알고리즘

목록 보기
4/6

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에 담아야 한다는 내 강박을 깨부순 멋진 답이었다.

profile
hi

0개의 댓글