https://www.acmicpc.net/problem/2559
temp_len, days = map(int,input().split())
temp = list(map(int, input().split()))
temp_max = 0
for start_idx in range(temp_len-days+1) :
if sum(temp[start_idx:start_idx+days]) > temp_max :
temp_max = sum(temp[start_idx:start_idx+days])
print(temp_max)
sum
을 활용하여 코드를 작성하였으나, 시간초과로 문제가 해결되지 않았습니다.temp_len, days = map(int,input().split())
temp = list(map(int, input().split()))
calc = sum(temp[:days])
temp_max = calc
for start_idx in range(1,temp_len-days+1) :
calc -= temp[start_idx - 1]
calc += temp[start_idx + days -1]
if calc > temp_max :
temp_max = calc
print(temp_max)
계속해서 sum을 새로 구하는 방식과, 겹치는 부분을 제외하고 더하고 빼는 방식에 대해 깨닫게 되었다. 앞의 방식을 처음에 떠올렸는데, 비효율적이라는 사실을 깨닫고, 뒤의 방식이 시간적인 측면에서도 더 효율적이라는 것을 알 수 있었다.