5*5 격자판에 아래 같이 숫자가 적혀있습니다.
10 13 10 12 15
12 39 30 23 11
11 25 50 53 15
19 27 29 37 27
19 13 30 13 19
N*N의 격자판이 주어지면 각 행의 합, 각 열의 합, 두 대각선의 합 중 가 장 큰 합을 출력합
니다.
▣ 입력설명
첫 줄에 자연수 N이 주어진다.(1<=N<=50)
두 번째 줄부터 N줄에 걸쳐 각 줄에 N개의 자연수가 주어진다. 각 자연수는 100을 넘지 않는
다.
▣ 출력설명
최대합을 출력합니다.
▣ 입력예제 1
5 1
0 13 10 12 15
12 39 30 23 11
11 25 50 53 15
19 27 29 37 27
19 13 30 13 19
▣ 출력예제 1
155
group=[]
n=int(input())
for i in range(n) :
a=list(map(int, input().split()))
group.extend(a)
#각 행의 합 : 0-4 . 5-9
one=0
two=n
max=0
while two<=n*n :
sum=0
for i in range(one,two):
sum+=group[i]
if max<sum:
max=sum
one+=n
two+=n
#각 열의 합 : 인덱스 5차이 나는 수끼리
one=0
for i in range(n):
sum=0
for i in range(one,n*n,n):
sum+=group[i]
one+=1
if max<sum:
max=sum
#두 대각선의 합
one=0
for i in range(2):
sum=0
for i in range(one,n*n,n+1):
sum+=group[i]
one+=n
if max<sum:
max=sum
print(max)
n=int(input())
a=[list(map(int,input().split())) for _ in range(n)]
largest=0
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-1-i]
if sum1>largest:
largest=sum1
if sum2>largest:
largest-sum2
print(largest)
n=int(input())
lst=[[0]*n]*n
for i in range(n):
lst[i]=list(map(int, input().split()))
tot=0
for i in lst:
if sum(i)>tot:
tot=sum(i)
for i in range(len(lst)):
tmp=0
for j in range(len(lst)):
tmp+=lst[j][i]
if tot<tmp:
tot=tmp
for i in range(len(lst)):
tmp=0
for j in range(len(lst)):
tmp+=lst[i][n-1-j]
if tot<tmp:
tot=tmp
tmp=0
for i in range(n):
tmp+=lst[i][i]
if tot<tmp:
tot=tmp
print(tot)
리스트 합치는 방법
(1) +
(2) extend
2차 리스트 한번에 읽기 *
(ex)
5 (=> nn, 즉 여기선 5*5)
10 13 10 12 15
12 39 30 23 11
11 25 50 53 15
19 27 29 37 27
19 13 30 13 19
이렇게 되어있는 애를 한번에 읽는 방법
a=[list(map(int, input().split())) for _ in range(n)]
[[10, 13, 10, 12, 15], [12, 39, 30, 23, 11], [11, 25, 50, 53, 15], [19, 27, 29, 37, 27], [19, 13, 30, 13, 19]]
이렇게 출력
[10, 13, 10, 12, 15]
[12, 39, 30, 23, 11]
[11, 25, 50, 53, 15]
[19, 27, 29, 37, 27]
[19, 13, 30, 13, 19]
이렇게 출력된다
for i in range(n):
sum1=sum2=0
for j in range(n):
sum1+=a[i][j](각 열의 합) <i는 고정 j만 이동>
<i가 0일때 j는 1부터n까지..>
sum2+=a[j][i](각 행의 합) <j는 고정 i만 이동>
<j가 0일때 i는 1부터n까지..>