[SWEA] 1209 - Sum

ttaho·2022년 11월 13일

SWEA

목록 보기
17/38

문제

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

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

[제약 사항]

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

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

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

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

[입력]

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

[출력]

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

풀이

처음에 100x100개 총 만개의 숫자를 input하나로 받으려 했는데, 100개까지만 받아져서 100개씩 끊어서 arr에 2차원 배열꼴로 숫자들을 저장해주고, 행별,열별,대각선별로 합을 구해서 sum에 저장해 준 후 거기서 제일 최대값을 출력하게 했다.

코드

for _ in range(10):
    test_case = int(input())
    arr=[]
    sum = []
    for _ in range(100):
        arr.append(list(map(int, input().split())))


    # 행의 합
    for i in range(100):
        temp_sum = 0
        for j in range(100):
            temp_sum +=arr[i][j]
        sum.append(temp_sum)
    # 열의 합
    for i in range(100):
        temp_sum = 0
        for j in range(100):
            temp_sum +=arr[j][i]
        sum.append(temp_sum)
    # 대각선 1의 합
    temp_sum=0
    for i in range(100):
        temp_sum+=arr[i][i]
    sum.append(temp_sum)

    # 대각선 2의 합
    temp_sum = 0
    for i in range(100):
        temp_sum += arr[i][99-i]
    sum.append(temp_sum)
    print(f'#{test_case} {max(sum)}')
profile
SW Engineer

0개의 댓글