반응형
문제
n * n의 격자판이 주어지면 각 행, 열, 두 대각선의 합 중 가장 큰 합을 출력한다.
주의
풀이
n = int(input())
a = [list(map(int, input().split())) for _ in range(n)]
# 전역 변수
largest = -2147000000
for i in range(n):
sum1 = sum2 = 0 #sum1은 행, sum2는 열
for j in range(n):
sum1 += a[i][j]
sum2 += a[j][i]
# 가장 큰 경우를 구해야 하니 largest에 큰 값을 계속 갱신해 준다.
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]
# 마찬가지로 largest에 제일 큰 값을 갱신해 주도록 한다.
if sum1 > largest:
largest = sum1
if sum2 > largest:
largest = sum2
print(largest)
반응형
'Algorithm > 파이썬 알고리즘 문제풀이 (코딩테스트대비)' 카테고리의 다른 글
[파이썬 알고리즘 문제풀이] : 봉우리 (0) | 2022.01.19 |
---|---|
[파이썬 알고리즘 문제풀이] : 사과나무 (0) | 2022.01.02 |
[파이썬 알고리즘 문제풀이] : 수들의 합 (0) | 2021.12.31 |
[파이썬 알고리즘 문제풀이] : 두 리스트 합치기 (0) | 2021.12.30 |
[파이썬 알고리즘 문제풀이] : 카드 역배치(정올 기출) (0) | 2021.12.30 |
댓글