[SWEA] 1209 : Sum- Python

Chooooo·2023년 11월 10일
0

알고리즘/백준

목록 보기
119/182

문제

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

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

[제약 사항]

총 10개의 테스트 케이스가 주어진다.

배열의 크기는 100X100으로 동일하다.

각 행의 합은 integer 범위를 넘어가지 않는다.

동일한 최댓값이 있을 경우, 하나의 값만 출력한다.

[입력]

각 테스트 케이스의 첫 줄에는 테스트 케이스 번호가 주어지고 그 다음 줄부터는 2차원 배열의 각 행 값이 주어진다.

[출력]

#부호와 함께 테스트 케이스의 번호를 출력하고, 공백 문자 후 테스트 케이스의 답을 출력한다.


def maxSum(data):
    res = 0
    # 가로 세로 최대
    row_max = 0 # 행 최대
    col_max = 0 # 열 최대
    for i in range(100):
        sumA = 0
        sumB = 0
        for j in range(100):
            sumA += data[i][j]
            sumB += data[j][i]
        row_max = max(row_max, sumA)
        col_max = max(col_max, sumB)
    # 대각선 최대
    d1_max = 0
    d2_max = 0
    for i in range(100):
        d1_max += data[i][i]
        d2_max += data[i][100-i-1]
    return max(row_max, col_max, d1_max, d2_max)


T = 10
for t in range(1,T+1):
    ss = int(input())
    data = [list(map(int ,input().split())) for _ in range(100)]
    MAX = maxSum(data)
    print(f"#{t} {MAX}")

😓 코멘트

해당 문제는 그냥 있는 그대로 구현. 가로 세로 대각선 따로 구해서 최댓값 찾으면 됐음.

profile
back-end, 지속 성장 가능한 개발자를 향하여

0개의 댓글