[Java]행렬의 덧셈

2025. 3. 13. 11:04·코딩테스트/Java

문제

행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.

 

✏️ 내 풀이 

class Solution {
    public int[][] solution(int[][] arr1, int[][] arr2) {
        int[][] answer = {};
        
        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;
    }
}

 

[[1,2],[2,3]] 가 테스트 케이스에 있다고 치면 [1,2] 를 첫번째 인덱스로 먼저 반복문을 돌리고 그안에 1,2 이라는 데이터를 j로 반복해 arr1 과 arr2 의 같은 인덱스 위치에 있는 것을 더한다.

 

오류가 발생했다

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
at Solution.solution(Unknown Source)
at SolutionTest.lambda$main$0(Unknown Source)
at SolutionTest$SolutionRunner.run(Unknown Source)
at SolutionTest.main(Unknown Source)

 

오류를 읽어보니 배열의 길이가 0 인데 인덱스 0 이외의것을 찾아서 예외가 발생했다고 한다.

코드를 살펴보니 answer이라는 배열은 크기를 지정해줘야 한다는 것을 알게 되었다.

int[][] answer = new int[arr1.length][arr1[0].length];

 

이렇게 설정하면 두개의 인덱스의 크기를 모두 구할 수 있다.

 

✏️ 좋은 코드

더보기
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;
    }
}

 

✒️회고

- 리스트가 아닌 배열을 선언하고 사용할 때에는 길이가 고정적으로 설정을 해줘야 한다는 것을 기억하기.

- 단순히 내 생각에 맞춘 코드를 짜기보다 누구나 쉽게 알아볼 수 있는 코드를 작성하는 것이 중요할 것이다

 

'코딩테스트 > Java' 카테고리의 다른 글

[Java]가장 가까운 같은 글자  (0) 2025.03.28
[Java]숫자 문자열과 영단어  (0) 2025.03.25
[Java]정수 내림차순으로 배치하기  (0) 2025.03.04
[Java]정수 제곱근 판별(Math함수)  (0) 2025.03.04
[Java]자연수 뒤집어 배열로 만들기(valueOf()사용)  (0) 2025.03.04
'코딩테스트/Java' 카테고리의 다른 글
  • [Java]가장 가까운 같은 글자
  • [Java]숫자 문자열과 영단어
  • [Java]정수 내림차순으로 배치하기
  • [Java]정수 제곱근 판별(Math함수)
코딩로봇
코딩로봇
금융 IT 개발자
  • 코딩로봇
    쟈니의 일지
    코딩로봇
  • 전체
    오늘
    어제
    • 분류 전체보기 (133) N
      • JavaScript (8)
      • SQL (10)
      • 코딩테스트 (29)
        • Java (15)
        • SQL (12)
      • Java (10)
      • 프로젝트 (21) N
        • 트러블슈팅 (7) N
        • 프로젝트 회고 (12)
      • git,Github (2)
      • TIL (35) N
      • Spring (16)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    java #arraylist #list #배열
    스파르타 코딩 #부트캠프 #첫ot
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코딩로봇
[Java]행렬의 덧셈
상단으로

티스토리툴바