본문 바로가기

Algorithm/파이썬 알고리즘 문제풀이

[python/inflearn/section3] 격자판 최대합

본 내용은 파이썬 알고리즘 문제풀이 (코딩테스트 대비) 강의를 토대로 작성하였습니다.

이미지 클릭시, 강의로 이동됩니닷 :)

# 격자판 최대합
import sys
#sys.stdin = open("input.txt", 'r')
n=int(input())
a = [list(map(int, input().split())) for _ in range(n)]
res = 0

# 각 행열의 합 중 최대값을 찾는다.
for i in range(n):
    sum1 = sum2 = 0
    for j in range(n):
        # 행의합
        sum1 += a[i][j]
        # 열의합
        sum2 += a[j][i]
    # 비교하여 최대값을 저장한다.
    if res < sum1:
        res = sum1
    if res < sum2:
        res = sum2

# 두 대각선의 합 중 최대값을 찾는다.
sum1 = sum2 = 0
for i in range(n):
    sum1 += a[i][i]
    sum2 += a[i][n-i-1]

# 비교하여 최대값을 저장한다.    
if res < sum1:
    res = sum1
if res < sum2:
    res = sum2

print(res)