관리 메뉴

cyphen156

백준-2차원 배열 2738 행렬 덧셈 본문

컴퓨터공학/알고리듬 풀이

백준-2차원 배열 2738 행렬 덧셈

cyphen156 2025. 2. 3. 11:59

행렬 덧셈

두 행렬을 더하는 프로그램을 만들면 된다.

제약사항

  • 0 < N, M <= 100
  • -100 <= Element <= 100

주의 사항

행렬의 원소의 절댓값이 100 이하인 정수 -> 음수 양수 모두 가능

두 행렬의 크기는 항상 같아야 한다. -> 행렬 연산의 공리

CPP풀이

행렬 덧셈.cpp

/**
 * 백준 행렬 덧셈_2738
 * 두 행렬을 더하는 프로그램을 만들면 된다.
 * 
 * 제한사항
 *****************************************
 * 0 < N, M <= 100                       *
 * -100 <= Element <= 100                *
 *****************************************
 *
 *
 *
 * 주의
 * 행렬의 원소의 절댓값이 100 이하인 정수 -> 음수 양수 모두 가능
 * 두 행렬의 크기는 항상 같아야 한다. -> 행렬 연산의 공리
 * 
 * 풀이시간 30분
 */


#include <iostream>
#include <vector>

using namespace std;

int main(void)
{
    int N = 0, M = 0;
    cin >> N >> M;

    int** arr1 = new int*[N];
    int** arr2 = new int*[N];
    // 두번의 행렬 입력
    for (int T = 0; T < 2; ++T)
    {
        for (int i = 0; i < N; ++i)
        {
            // 목표 배열 설정
            int** Dest;
            if (T == 0)
            {
                Dest = arr1;
            }
            else 
            {   
                Dest = arr2;
            }

            // 행 생성
            int* arr = new int[M];
            Dest[i] = arr;

            // 열 입력
            for (int j = 0; j < M; ++j)
            {
                int Input;
                cin >> Input;
                // 행 입력
                Dest[i][j] = Input;
            }
        }
    }

    for (int i = 0; i < N; ++i)
        {
            // 열 덧셈
            for (int j = 0; j < M; ++j)
            {
                // 행 덧셈
                cout << arr1[i][j] +  arr2[i][j] << " ";
            }
            cout << "\n";
        }
    return 0;
}

모든 예제 코드의 소스파일은 제 개인 깃허브 레포지토리 에 있습니다.

 

Workspace/알고리듬 풀이 at main · cyphen156/Workspace

Studying . Contribute to cyphen156/Workspace development by creating an account on GitHub.

github.com