코딩 테스트/백준

백준 - [단계별로 풀어보기 2차원 배열] 2738 행렬 덧셈

devrabbit22 2026. 3. 18. 23:26

2차원 배열을 다루는 문제인 만큼, C#에서는 C, C++과 배열의 선언 및 사용 방식이 다르다는 점을 주의해야 한다.

C, C++에서는 arr[i][j] 형태의 배열 접근을 사용하는 반면, C#에서는 arr[i, j]와 같이 쉼표(,)를 사용해 2차원 배열에 접근한다.

이번 문제는 2개의 행렬을 받아 각 행렬의 합을 출력하는 문제이다. 그렇기에 행렬 A와 행렬 B의 값들을 입력받아 각 행렬의 합을 출력해 문제를 해결했다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp3
{
    internal class _2D_Array
    {
        static void Main(string[] args)
        {
            string[] arrInfo = Console.ReadLine().Split(' ');
            int rows = int.Parse(arrInfo[0]);
            int cols = int.Parse(arrInfo[1]);

            int[,] arrA = new int[rows, cols];
            int[,] arrB = new int[rows, cols];

            //행렬 A 데이터 할당
            for (int i = 0; i< rows; i++)
            {
                string[] inputData = Console.ReadLine().Split(' ');
                for(int j = 0; j < cols; j++)
                {
                    arrA[i, j] = int.Parse(inputData[j]); 
                }
            }
            //행렬 B 데이터 할당
            for (int i = 0; i < rows; i++)
            {
                string[] inputData = Console.ReadLine().Split();

                for (int j = 0; j < cols; j++)
                {
                    arrB[i, j] = int.Parse(inputData[j]);
                }
            }
            //행렬 A, B 합산
            for(int i = 0; i < rows; i++)
            {
                for(int j = 0; j < cols; j++)
                {
                    Console.Write(arrA[i, j] + arrB[i, j] + " ");
                }
                Console.WriteLine();
            }
        }
    }
}