문제 번호 2738번 : 행렬 덧셈 - JAVA [자바]
728x90
https://www.acmicpc.net/problem/2738
2738번: 행렬 덧셈
첫째 줄에 행렬의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 차례대로 주어진다. 이어서 N개의 줄에 행렬 B의 원소 M개가 차례대로 주어진다. N과 M은 100보다 작거나 같
www.acmicpc.net
문제 설명
행렬 덧셈에 관한 문제입니다. 기본적으로 행렬에 대한 기본 지식이 있어야 풀 수 있는 문제입니다.
문제 풀이
9단계는 분명 정렬 문제였는데..정렬를 공부하고 있는 중간에 갑자기 행렬 문제가 추가되서 당황했습니다. 황급히 행렬 문제를 먼저 풀고 정렬로 넘어가도록 하겠습니다.
해당 입력 그림에서는 이쁘게 3칸 3칸으로 행렬을 알아볼 수 있도록 해주었지만 사실 문제 설명을 위해 저렇게 이쁘게 만들어 놓은거지 사실은 그냥 입력해도 무방합니다. 하지만 예제 출력은 조건이 있으니깐 이쁘게 만들어줍시다.
2차원 배열을 사용해서 간단하게 풀었습니다.
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int[][] arrayA = new int[n][m];
int[][] arrayB = new int[n][m];
int[][] arrayResult = new int[n][m];
for(int i=0; i<n; i++){
for(int j=0; j<m; j++){
arrayA[i][j] = sc.nextInt();
}
}
for(int i=0; i<n; i++){
for(int j=0; j<m; j++){
arrayB[i][j] = sc.nextInt();
}
}
for(int i=0; i<n; i++){
for(int j=0; j<m; j++){
arrayResult[i][j] = arrayA[i][j] + arrayB[i][j];
}
}
for(int i=0; i<n; i++){
for(int j=0; j<m; j++){
System.out.printf(arrayResult[i][j] + " ");
}
System.out.println();
}
}
}
이중 반복문을 이용해서 입력받고 더하면 결과를 출력할 수 있습니다.