본문 바로가기
Algorithms/simulation

1209 Sum

by OKOK 2018. 10. 26.

100 100 2차원 배열이 주어질 때.

각 행의 합, 각 열의 합, 각 대각선의 합 중 최댓값을 구하는 프로그램을 작성.

5 5 배열에서 최댓값은 29입니다.

 

총 10개의 테케가 주어짐

배열 크기 100 100 으로 동일

각 행의 합은 정수 범위

동일한 최댓값 경우 하나의 값만 출력함

 

입력

각 테케 첫 줄 테 케 번호가 주어짐.

그 다음 줄부터 2차원 배열의 각 행 값이 주어짐.

 

출력

출력완료 

#include <stdio.h>
//#include <memory.h>
int main()
{
    //freopen("input.txt", "r", stdin);
    int t, tc; // 테케 

    for (t = 1; t <= 10; t++) // 총 10번의 테케
    {
        scanf("%d", &tc); // 테캐 번호 입력 받음
        int tmp;
        int col[100] = { 0 }, row[100] = { 0 }, cross[2] = { 0 }; // 초기화 
        for (int i = 0; i < 100; i++) // 100 번 인덱스 아이
        {
            for (int j = 0; j < 100; j++) // 100번 인덱스 제이
            {
                scanf("%d", &tmp); // tmp 를 받고, row 에 넣고,
                row[i] = row[i] + tmp; // col 에 넣고
                col[j] = col[j] + tmp;
                if (i == j) 
                    cross[0] = cross[0] + tmp; // 크로스 계산
                if (i + j == 99)
                    cross[1] = cross[1] + tmp;
            }
        }
        int res = 0; // 결과값
        for (int i = 0; i < 100; i++)
        {
            if (row[i]>res) // 로우중 가장 큰 값
                res = row[i];
            if (col[i] > res) // 컬중 가장 큰 값
                res = col[i];
        }
        if (cross[0] > res) // 크로스 중 가장 큰 값을 찾음.
            res = cross[0];
        if (cross[1] > res)
            res = cross[1];
        printf("#%d %d\n", t, res); // 출력함
    }
    return 0;
}

'Algorithms > simulation' 카테고리의 다른 글

1217 거듭 제곱  (0) 2018.10.26
1213 String  (0) 2018.10.26
1206 View  (0) 2018.10.26
1208 Flatten  (0) 2018.10.26
1204 최빈수 구하기  (0) 2018.10.26

댓글