📘문제 설명
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
https://school.programmers.co.kr/learn/courses/30/lessons/12950
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
📌 제한조건
- 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.
💡 개념 설명
- 결과 행렬 초기화: 입력 행렬 arr1과 동일한 크기의 2차원 배열 **answer**를 생성합니다.
- 행 순회: arr1의 행 길이만큼 외부 반복문을 실행합니다.
- 열 순회: arr1의 열 길이만큼 내부 반복문을 실행합니다.
- 원소 덧셈: 각 반복에서 같은 위치(i행, j열)의 원소인 **arr1[i][j]**와 **arr2[i][j]**를 더하여 그 결과를 answer[i][j]에 저장합니다.
- 결과 반환: 모든 덧셈이 완료된 최종 행렬 answer를 반환합니다.
📎 입출력 예시

📎 코드
import java.util.Arrays;
public class Solution {
public int[][] solution(int[][] arr1, int[][] arr2) {
// 1. 결과 행렬 초기화
int rows = arr1.length;
int cols = arr1[0].length;
int[][] answer = new int[rows][cols];
// 2. 행렬 순회 및 덧셈
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
answer[i][j] = arr1[i][j] + arr2[i][j];
}
}
// 3. 결과 반환
return answer;
}
public static void main(String[] args) {
Solution sol = new Solution();
// 테스트 케이스 1: [[1, 2], [2, 3]] + [[3, 4], [5, 6]] = [[4, 6], [7, 9]]
int[][] arr1_1 = {{1, 2}, {2, 3}};
int[][] arr2_1 = {{3, 4}, {5, 6}};
// 테스트 케이스 2: [[1], [2]] + [[3], [4]] = [[4], [6]]
int[][] arr1_2 = {{1}, {2}};
int[][] arr2_2 = {{3}, {4}};
int[][] result1 = sol.solution(arr1_1, arr2_1);
int[][] result2 = sol.solution(arr1_2, arr2_2);
System.out.println("결과 1: " + Arrays.deepToString(result1));
System.out.println("결과 2: " + Arrays.deepToString(result2));
}
}
📎 결과

'Java' 카테고리의 다른 글
| [Java] 코딩 29 - 프로그래머스 기출 문제(JAVA) / 최대공약수와 최소공배수 / Day 26 (0) | 2025.12.12 |
|---|---|
| [Java] 코딩 28 - 프로그래머스 기출 문제(JAVA) / 직사각형 별찍기 / Day 25 (0) | 2025.11.22 |
| [Java] 코딩 26 - 프로그래머스 기출 문제(JAVA) / 문자열 다루기 기본 / Day 23 (0) | 2025.10.25 |
| [Java] 코딩 25 - 프로그래머스 기출 문제(JAVA) / 부족한 금액 계산하기 / Day 22 (0) | 2025.09.29 |
| [Java] 코딩 24 - 프로그래머스 기출 문제(JAVA) / 문자열 내림차순으로 배치하기 / Day 21 (0) | 2025.09.26 |