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)))
알게된 사실
슬라이스 사용법.
참고자료