본문으로 바로가기

SW Expert Academy 1209. <Sum>은 가로, 세로, 대각선 방향으로의 합이

가장 큰 경우를 반환하는 문제이다.

어렵지 않게 쉽게 풀 수 있다.

SW Expert Academy에서 푼 문제 리스트 보기

github에서 코드 보기

문제 풀이

이 문제는 반복문만 많이 사용하면 충분히 문제를 풀 수가 있다. 다만 문제를 풀 때, 최대한 시간 복잡도를 줄이려고 노력하면서 풀면 더 재미있게 풀 수 있다.

파이썬 코드

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
def sumArray(array):
    max, vr, vl = 0 , 00
 
    for i in range(0, num):
        vr += array[i][i]
        vl += array[num - i - 1][i]
 
        # row
        r = sum(array[i])
 
        # column
        c = 0
        for j in range(0, num):
            c += array[j][i]
 
        if max < r:
            max = r
 
        if max < c:
            max = c
 
    # 대각선 비교
    if max < vr:
        max = vr
 
    if max < vl:
        max = vl
 
    return max
 
 
if __name__ == "__main__":
    num  = 100
    for tc in range(10):
        t = int(input())
        array = []
        for i in range(num):
            array.append(list(map(int, input().strip().split())))
        print('#{0} {1}'.format(t, sumArray(array)))
 
cs

#1209. Sum python #1209 Sum 파이썬