Programming
Study/Programming / / 2024. 3. 28. 10:31

BOJ 2738번 : 행렬 덧셈 / C언어

728x90

문제: https://www.acmicpc.net/problem/2738

 

2738번: 행렬 덧셈

첫째 줄에 행렬의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 차례대로 주어진다. 이어서 N개의 줄에 행렬 B의 원소 M개가 차례대로 주어진다. N과 M은 100보다 작거나 같

www.acmicpc.net

 

해설:

1. N과 M을 입력으로 받음. 이는 각각 행렬 A와 B의 행(row)과 열(column)의 개수를 나타냄.

2. 크기가 N x M인 두 개의 2차원 배열 arr1과 arr2를 선언. 이들은 각각 행렬 A와 B를 저장.

3. 사용자로부터 행렬 A와 B의 원소를 입력받음. 두 행렬을 더하여 결과를 출력.

4. 이를 위해 같은 위치의 원소들을 더한 값을 출력. 각 행의 덧셈 결과를 출력하고 한 행이 끝날 때마다 줄 바꿈.


코드:

더보기

#include <stdio.h>

int main() {
    
int N, M; // 행렬의 행과 열의 개수를 저장할 변수
int arr1[101][101], arr2[101][101]; // 두 개의 행렬을 저장할 배열, 최대 크기는 100x100으로 가정

// 행렬 A와 B의 행과 열의 개수를 입력받음
scanf("%d %d", &N, &M);

// 행렬 A의 원소를 입력받음
for (int i = 0; i < N; i++)
for (int k = 0; k < M; k++)
scanf("%d", &arr1[i][k]);

// 행렬 B의 원소를 입력받음
for (int i = 0; i < N; i++)
for (int k = 0; k < M; k++)
scanf("%d", &arr2[i][k]);

// 두 행렬의 같은 위치에 있는 원소를 더하여 결과를 출력
for (int i = 0; i < N; i++) {
for (int k = 0; k < M; k++)
printf("%d ", arr1[i][k] + arr2[i][k]); // 두 행렬의 같은 위치에 있는 원소를 더함
printf("\n"); // 각 행의 덧셈 결과를 출력하고 개행
}

return 0;
}

728x90
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유