For Programmer

SWEA 1209 파이썬 문제풀이(Sum) 본문

코팅테스트/백준 문제 모음

SWEA 1209 파이썬 문제풀이(Sum)

유지광이 2022. 2. 6. 19:27
728x90

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV13_BWKACUCFAYh 

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 


 

간단한 구현 문제이다. SWEA문제는 입력 처리하기가 너무 힘들다;; (데이터 10000개를 텍스트에 주니깐....) 어쨋든 이문제는 반복문 2번안에 모든 경로(가로,세로,대각선2개) 합을 모두 구해서 마지막에 가장큰 값만 출력해주는 문제이다.

for _ in range(1, 10 + 1):
    order = int(input())
    array = []
    for _ in range(100):
        array.append(list(map(int, input().split())))

    result = []  # 모든 합들을 모아놓을 리스트

    sum_rightup = 0  # 오른쪽위 대각선 합
    sum_rightdown = 0  # 오른쪽아래 대각선 합
    for i in range(100):
        sum_width = 0  # 가로합을 저장할 리스트
        sum_height = 0  # 세로합들을 저장할 리스트
        for j in range(100):
            sum_width += array[i][j]  # 가로합 더해준다.
            sum_height += array[j][i]  # 세로합 더해준다.
            if i == j:  # 만약 두개의 인덱스가 같다면(오른쪽아래 대각선합)
                sum_rightup += array[i][j]
            if i + j == 99:  # 만약 두개의 합이 99라면(오른쪽위 대각선합)
                sum_rightdown += array[i][j]
        result.append(sum_width)
        result.append(sum_height)

    result.append(sum_rightup)
    result.append(sum_rightdown)
    print(f'#{order} {max(result)}')  # 최댓값 출력
728x90
Comments