• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

격자판 최대합

22.10.27 22:00 작성 조회수 167

0

이런식으로 함수를 만들어서 코드를 짰습니다.

실제로도 대각선, 세로, 가로 합, 최댓값 제대로 출력되는데 왜 채점에서는 wrong 으로 나올까요?

 

import sys
sys.stdin = open("input.txt", "rt")
n = int(input())
arr = []
for i in range(n):
    arr.append(list(map(int, input().split())))


def sumHorizon(n):
    sum = 0
    maxSum = 0

    for i in range(n):
        for j in range(n):
            sum += arr[i][j]
            if (j == n-1):
                if maxSum < sum:
                    maxSum = sum
                    sum = 0
                else:
                    sum = 0
    return maxSum


def sumVertical(n):
    sum = 0
    maxSum = 0
    
    for i in range(n):
        for j in range(n):
            sum += arr[j][i]
            if (j == n-1):
                if maxSum < sum:
                    maxSum = sum
                    sum = 0
                else:
                    sum = 0
    return maxSum


def sumDiagonal(n):
    lsum = 0 
    rsum = 0 
    maxSum = 0
    
    for i in range(n):
        lsum += arr[i][i]
        rsum += arr[i][n-i-1]
    
        if (i == n-1):
                if maxSum < lsum:
                    maxSum = lsum
                    lsum = 0
                elif maxSum < rsum:
                    maxSum = rsum
                    rsum = 0
                else:
                    lsum = 0
                    rsum = 0

    return maxSum

result = max(sumDiagonal(5), sumVertical(5), sumHorizon(5))
print(result)

답변 1

답변을 작성해보세요.

0

안녕하세요^^

채점폴더에 입력데이터가 있으니 스스로 디버그해보시면 좋을 것 같습니다.