SWE(4835)_구간합

SWE 4835 구간합

배열의 구간의 합 중 가장 큰 경우와 가장 작은 경우의 차이를 구하라

아이디어

N-M+1의 요소를 갖는 리스트를 생성하고 그 안에 각각의 영역을 저장해서 min하고 max 쓰자.

코드

T = int(input())

result = []
for i in range(T):
    # for j in range(N):
    N, M = map(int, input().split())

    arr = list(map(int, input().split()))
    arr2 = []
    for j in range(N-M+1):
        num = sum(arr[j:j+M])
        arr2.append(num)
    print("#%s %d" % (i+1, max(arr2)-min(arr2)))

알게된 사실

슬라이스 사용법.


참고자료

0%