practivceAlgorithm/swexpertacademy

[SWEA] 1209 배열의 최댓값 구하기

findTheValue 2021. 8. 11. 18:21

2차원 배열 가로, 세로, 대각선 중 합의 최댓값 구하는 문제.

 

 

import sys
sys.stdin = open('input.txt')


def find_max(arr):
    max_sum = 0
    # 행 조사
    for row in range(100):
        sum_row = sum(arr[row])
        if max_sum < sum_row:
            max_sum = sum_row
    # 열 조사
    for column in range(100):
        sum_column = sum([k for k in zip(*arr)][column])
        if max_sum < sum_column:
            max_sum = sum_column

    # 대각선 조사
    sum_diagonal1 = 0
    sum_diagonal2 = 0
    for i in range(100):
        sum_diagonal1 += arr[i][i]
        sum_diagonal2 += arr[i][99-i]
    if max_sum < sum_diagonal1:
        max_sum = sum_diagonal1
    if max_sum < sum_diagonal2:
        max_sum = sum_diagonal2

    return max_sum


for _ in range(10):
    test = int(input())
    matrix = [list(map(int, input().split())) for _ in range(100)]
    print(f'#{test} {find_max(matrix)}')