본문 바로가기
Coding Test/Java Coding Test

[프로그래머스 / 자바] - 행렬의 덧셈

by nam_ji 2024. 2. 18.

행렬의 덧셈

문제

  • 2차원 배열 arr1과 arr2가 매개변수로 주어집니다.
  • arr1과 arr2의 2차원 배열의 덧셈을 하는 문제입니다.


테스트 (인텔리제이)

  • answer를 초기화 하여 문제를 풀어도 되고 answer 없이 풀이도 가능합니다.
  • 일단 answer를 arr1의 크기와 arr2의 크기로 초기화 해줍니다.
  • 2차원 배열이기 때문에 이중 for문을 사용해야 합니다.
  • 첫번째 for문은 arr1의 크기까지 순회하도록
  • 두번째 for문은 arr1의 첫번째 배열 크기까지 순회하도록 하여 2차원 배열에 맞게 순회하도록 합니다.
  • for문 안에서 answer의 첫번째 크기에 i를 두번째 크기에 j를 넣어 자리별로 순회한 값이 들어가도록 하고
  • arr1과 arr2도 마찬가지로 자리를 정해주고 그 자리의 값을 더해서 answer에 담아주도록 합니다.
import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        /*
        2차원 배열 arr1과 arr2가 매개변수로 주어집니다.
        arr1과 arr2의 2차원 배열의 덧셈을 하는 문제입니다
        arr1            arr2            return
        [[1,2],[2,3]]   [[3,4],[5,6]]   [[4,6],[7,9]]
        [[1],[2]]       [[3],[4]]       [[4],[6]]
         */
        int[][] arr1 = {{1,2},{2,3}};
        int[][] arr2 = {{3,4},{5,6}};
        int[][] answer = new int[arr1.length][arr2.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];
            }
        }
        System.out.println(Arrays.deepToString(answer));
    }
}

프로그래머스 코드

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