[오늘의 문제] 행렬의 덧셈

shlim55·2025년 5월 23일

코딩테스트

목록 보기
59/223

출처: https://school.programmers.co.kr/learn/courses/30/lessons/12950

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

제한 조건
행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.
입출력 예
arr1 arr2 return
[[1,2],[2,3]] [[3,4],[5,6]] [[4,6],[7,9]]
[[1],[2]] [[3],[4]] [[4],[6]]

내가 30분내로 작성한 코드문이다.

class Solution {
    public int[][] solution(int[][] arr1, int[][] arr2) {
        int[][] answer = new int[arr1.length][arr1[0].length];
        // i = 0 1, 2     3, 4
        // i = 1 2, 3     5, 6
        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];// 이 값을 answer배열에 i = 0, j = 0에     
             
            }
        }
        
        return answer;
    }
}

이중 배열 초기화 부분에서 삐끗하고
이중 반복문에서 안쪽 반복문 인덱스 arr1[0] 해야 한다는거에서 삐끗했다.

다른 사람의 풀이

class Solution {
    public int[][] solution(int[][] arr1, int[][] arr2) {
        int[][] answer = {};
        answer = arr1;
        for(int i=0; i<arr1.length; i++){
            for(int j=0; j<arr1[0].length; j++){
                answer[i][j] += arr2[i][j];
            }
        }
        return answer;
    }
}

아예 answer 배열을 arr1로 할당하는 방식이다.

profile
A Normal Programmer

0개의 댓글