1209. [S/W 문제해결 기본] 2일차 - Sum

SW 업무 관련/SW Expert Academy

1209. [S/W 문제해결 기본] 2일차 - Sum

WillBe_ 2018. 7. 1. 22:10


문제에 나온 그림대로 100*100 더한 값 들을 배열의 101 째 칸에 넣어주었다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <stdio.h>
#include <string.h>
int map[103][103];
 
int main()
{
    for (int i = 1; i <= 10; i++)
    {
        scanf("%d",&map[0][0]);
        memset(map, 0sizeof(map));
 
        for (int a = 1; a <= 100; a++)//입력
        {
            for (int b = 1; b <= 100; b++)
            {
                scanf("%d",&map[a][b]);
            }
        }
 
        int left = 0, right = 0, max = 0;
        for (int a = 1; a <= 100; a++)
        {
            int row = 0, col = 0;
            for (int b = 1; b <= 100; b++)//가로
            {
                row += map[a][b];
            }
            map[a][101= row;
 
            for (int b = 1; b <= 100; b++)//가로
            {
                col += map[b][a];
            }
            map[101][a] = col;
 
            left += map[101 - a][101 - a];//우상 에서 좌하
            right += map[a][a];//좌상 에서 우하
        }
 
        map[101][101= right;
        map[101][0= left;
 
        for (int a = 1; a <= 100; a++)
        {
            if (map[101][a] > max)
            {
                max = map[101][a];
            }
 
            if (map[a][101> max)
            {
                max = map[a][101];
            }
        }
 
        if (map[101][0> max)
        {
            max = map[101][0];
        }
 
        if (map[101][101> max)
        {
            max = map[101][101];
        }
        printf("#%d %d\n",i , max);
    }
 
    return 0;
}
cs