[코드트리] - 배열의 합을 구하는 함수

LSDrug·2024년 8월 2일
0

문제풀이

목록 보기
9/21

배열의 합을 구하는 함수 ⭕


문제

https://www.codetree.ai/training-field/search/problems/function-to-find-sum-of-arrays?&utm_source=clipboard&utm_medium=text


풀이

아주 쉽게 풀 수 있는 문제. for 반복문을 이용해서 n + 1 번째(실제로는 n번째 인덱스)에 있는 값을 행과 열로 구분하여 구하고 그것을 배열에 넣고 출력만 하면 되는 문제.

다만, 주의해야 할 점은 0부터 시작하는 인덱스이니만큼 배열의 인덱스와 순서에 주의하고, 행과 열을 따로 계산해야 할 점을 꼽을 수 있다.


코드

코드는 다음과 같다.

#include <iostream>
using namespace std;

int arr[1001][1001];
int n;
int s3, s4, ts;


int main() {
    
    cin >> n;

    for(int i = 0; i < n; i++) {
        for(int j = 0; j < n; j++) {
            int nn;
            cin >> nn;
            arr[i][j] = nn;
        }
    }

    for(int i = 0; i < n; i++) {
        int sum1 = 0;
        for(int j = 0; j < n; j++) {
            sum1 += arr[i][j];
        }

        arr[i][n] = sum1;
    }

    for(int j = 0; j < n; j++) {
        int sum2 = 0;
        for(int i = 0; i < n; i++) {
            sum2 += arr[i][j];
        }

        arr[n][j] = sum2;
    }

    for(int i = 0; i < n + 1; i++) {
        s3 += arr[n][i];
    }

    arr[n][n] = s3;

    for(int i = 0; i < n +1; i++) {
        for(int j = 0; j < n + 1; j++) {
            cout << arr[i][j] << " ";
        }
        cout << endl;
    }
    return 0;
}

해당 코드가 번잡한데, 함수를 통해 정리하면 좀 더 깔끔하게 정리할 수 있다.

#include <iostream>
using namespace std;

int arr[1001][1001];
int n;

void srow() {
    for(int i = 0; i < n; i++) {
        int sum = 0;
        for(int j = 0; j < n; j++) {
            sum += arr[i][j];
        }

        arr[i][n] = sum;
    }
}

void scol() {
    for(int j = 0; j < n; j++) {
        int sum = 0;
        for(int i = 0; i < n; i++) {
            sum += arr[i][j];
        }

        arr[n][j] = sum;
    }
}

void slowandcol() {
    int sum = 0;
    for(int i = 0; i < n + 1; i++) {
        sum += arr[n][i];
    }

    arr[n][n] = sum;
}

void show() {
    for(int i = 0; i < n +1; i++) {
        for(int j = 0; j < n + 1; j++) {
            cout << arr[i][j] << " ";
        }
        cout << endl;
    }
}


int main() {
    
    cin >> n;

    for(int i = 0; i < n; i++) {
        for(int j = 0; j < n; j++) {
            int nn;
            cin >> nn;
            arr[i][j] = nn;
        }
    }

    srow();
    scol();
    slowandcol();
    show();
    
    return 0;
}

profile
마약같은 코딩, 마약같은 코딩러

0개의 댓글

관련 채용 정보