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

기록하는 용도·2022년 5월 24일
0
  1. 입력을 받는다.
  2. 회문2 문제를 풀때처럼 zip을 사용해서 전치행렬을 만들어준다.
  3. zip을 사용해서 하나의 반복문 안에서 세로합이 최대값인지, 가로합이 최대값인지 한번에 계산해준다.
for i in range(10):
    n = int(input())
    board = [list(map(int, input().split())) for _ in range(100)]
    board2 = list(zip(*board))
    max_sum = 0


    for a, a2 in zip(board, board2):
        if max_sum < sum(a):
            max_sum = sum(a)
        if max_sum < sum(a2):
            max_sum = sum(a2)

    sums=0
    for a in range(100):
        sums += board[a][a]
    if max_sum < sums:
        max_sum = sums

    sums = 0
    check = [i for i in range(100)]
    check2 = [i for i in range(100-1, -1,-1)]
    for a in range(100):
        sums += board[check[a]][check2[a]]
    if max_sum < sums:
        max_sum = sums

    print("#{} {}".format(i+1, max_sum))

0개의 댓글