행렬 덧셈(Matrix Addition)은 같은 크기를 가진 두 행렬의 대응하는 원소끼리 서로 더하는 연산입니다. C#에서는 2차원 배열을 활용하면 간단하게 구현할 수 있습니다.
행렬 덧셈의 기본 개념
행렬 덧셈을 수행하려면 먼저 두 개의 행렬이 필요합니다. 첫 번째 행렬과 두 번째 행렬의 행(row)과 열(column) 개수를 입력받아야 하며, 두 행렬의 크기가 동일해야만 덧셈이 가능하다는 점을 기억해야 합니다.
두 행렬에 원소를 모두 입력한 후, 새로운 배열을 선언하고 두 배열의 대응하는 원소들을 더한 값을 저장하면 됩니다. 핵심 연산 코드는 다음과 같습니다.
arr3[i, j] = arr1[i, j] + arr2[i, j];
C# 전체 예제 코드
아래는 사용자로부터 두 행렬의 크기와 원소를 입력받아 덧셈을 수행하고 결과를 출력하는 완전한 C# 프로그램입니다.
using System;
using System.Linq;
class Demo {
static void Main() {
int m, n, i, j;
Console.Write("행렬의 행과 열 개수를 입력하세요: ");
m = Convert.ToInt16(Console.ReadLine());
n = Convert.ToInt16(Console.ReadLine());
int[] arr1 = new int[10, 10];
int[] arr2 = new int[10, 10];
int[] arr3 = new int[10, 10];
Console.Write("첫 번째 행렬의 원소 입력: ");
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
arr1[i, j] = Convert.ToInt16(Console.ReadLine());
}
}
Console.Write("두 번째 행렬의 원소 입력: ");
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
arr2[i, j] = Convert.ToInt16(Console.ReadLine());
}
}
Console.WriteLine("첫 번째 행렬");
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
Console.Write(arr1[i, j] + "\t");
}
Console.WriteLine();
}
Console.WriteLine("두 번째 행렬");
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
Console.Write(arr2[i, j] + "\t");
}
Console.WriteLine();
}
// 행렬 덧셈 수행
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
arr3[i, j] = arr1[i, j] + arr2[i, j];
}
}
Console.WriteLine("행렬 덧셈 결과");
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
Console.Write(arr3[i, j] + "\t");
}
Console.WriteLine();
}
Console.ReadLine();
}
}실행 결과
위 프로그램을 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.
행렬의 행과 열 개수를 입력하세요: 3 3 첫 번째 행렬의 원소 입력: 1 2 3 4 5 6 7 8 9 두 번째 행렬의 원소 입력: 1 2 3 4 5 6 7 8 9 첫 번째 행렬 1 2 3 4 5 6 7 8 9 두 번째 행렬 1 2 3 4 5 6 7 8 9 행렬 덧셈 결과 2 4 6 8 10 12 14 16 18
코드 핵심 포인트 정리
- 2차원 배열 선언: C#에서는
int[]형태로 2차원 배열을 선언하여 행렬을 표현합니다. - 중첩 반복문: 행(row)과 열(column)을 순회하기 위해 이중 for문을 사용합니다.
- 원소별 덧셈:
arr3[i, j] = arr1[i, j] + arr2[i, j]를 통해 대응하는 위치의 원소끼리 더합니다. - 크기 일치 필수: 두 행렬의 행과 열 개수가 같아야 덧셈 연산이 성립합니다.
이 예제는 콘솔 기반의 단순한 구현이지만, 실무에서는 List<T>나 LINQ를 활용하거나 Math.NET Numerics 같은 라이브러리를 사용하면 더욱 효율적으로 행렬 연산을 처리할 수 있습니다.