[SW expert Academy] 1209. [S/W 문제해결 기본] 2일차 - Sum [D2]

Woogie·2023년 1월 9일
0
post-thumbnail

1209. [S/W 문제해결 기본] 2일차 - Sum

문제

다음 100X100의 2차원 배열이 주어질 때, 각 행의 합, 각 열의 합, 각 대각선의 합 중 최댓값을 구하는 프로그램을 작성하여라.

다음과 같은 5X5 배열에서 최댓값은 29이다.

문제 풀이

쉽게 생각해보면 1.가로 더하기, 세로 더하기, 대각선 더하기로 구분하면된다.
너무 하드코딩적이라 아쉬운 면모가 있다.

문제 해결

for start in range(0,10):
    T = int(input())
    arr = []
    sum1 = []
    last1 = 0
    last2 = 0
    for g in range(100):
        tmp = list(map(int, input().split())) # 가로 더하기
        sum1.append(sum(tmp))
        arr.append(tmp)

    for j in range(0,100):
        pend = 0
        for k in range(0,100):
            if j == k:						#왼쪽에서 오른쪽으로 대각선 더하기
                last1 += arr[j][k]
            if j + k == 9:					#오른쪽에서 왼쪽으로 대각선 더하기
                last2 += arr[j][k]
            pend += arr[k][j]				#세로 더하기 
        sum1.append(pend)
    sum1.append(last1)
    sum1.append(last2)
    print("#", end="")
    print(T,end=" ")
    print(max(sum1))
profile
ssafy_9th / CS

0개의 댓글