• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

질문드립니다.

21.05.15 21:23 작성 조회수 127

0

안녕하세요.

격자판 최대합 알고리즘을 구현해 보았는데요.

열,행,대각선 합을 구하는 리스트를 따로 만들고, max함수를 사용하여 구현을 하였습니다.

제가 아직 메모리와 시간복잡도에 대해 잘 몰라서 질문드립니다. 아래와 같이 구현하게 되면 메모리와 시간 측면에서 비효율적일까요?.. 

확인 부탁드리겠습니다. 감사합니다.

n = int(input())
numlist = [list(map(int, input().split())) for _ in range(n)]
sumlist = [0]*(2*n+2)

for i in range(n):
    for j in range(n):
        num = numlist[i][j]
        sumlist[i]+=num
        sumlist[j+n]+=num
        if i==j:
            sumlist[-2]+=num
        elif i+j == n-1:
            sumlist[-1]+=num
maxSum = max(sumlist)
print(maxSum)

답변 1

답변을 작성해보세요.

0

안녕하세요^^

이 문제는 시간복잡도나 메모리 관리를 따질만큼 그런 수준의 입력크기가 아닙니다.

위와 같이 풀어도 별 차이 없습니다. 잘 하신 코드입니다.