격자판 최대합
문제 정보는 인프런의 파이썬 알고리즘 문제풀이 코딩테스트에 있습니다!
문제풀이
N = int(input())
a = [list(map(int, input().split())) for _ in range(n)]
largest = - 2147000000
# a 리스트 안의 각 행 리스트를 불러옴
for i in range(n):
sum1 = sum2 = 0
for j in range(n):
# 행의 총합
sum1+= a[i][j]
# 열의 총합
sum2+= a[j][i]
if sum1 > largest:
largest = sum1
if sum2 > largest:
largest = sum2
sum1 = sum2 = 0
# 대각선 총합
for i in range(n):
sum1 += a[i][i]
sum2 += a[i][n-i-1]
if sum1 > largest:
largest = sum1
if sum2 > largest:
largest = sum2
return largest
리스트 컴프리헨션을 써서 2차원배열을 만들어서 가로 세로 합을 쉽게 구하고, 2차원배열을 활용해서 대각선 총합도 쉽게 구해서 문제를 해결하였다!