내 아이디어: list window 크기만큼 슬라이싱 후 sum(), 다음 max() - min() → 정답~
처음에 최댓값 최솟값이란 글자만 보고 sorted()랑 reversed() 써서 재배열 후 window 사이즈에 든 값의 합 찾는건줄… 문제 좀 잘 읽어보자… 그 어디에도 재배열이란 말은 없는데 꽂혔었나
T = int(input())
# 여러개의 테스트 케이스가 주어지므로, 각각을 처리합니다.
for i in range(1, T + 1):
answer = 0 # 항상 변수 초기화 해둬야
m_n = list(map(int, input().split()))
input_list = list(map(int, input().split()))
added_list = []
n = m_n[1]
# 재배열 불가! 문제 이해 잘 해보자,,, window slicing
for j in range (len(input_list) - n + 1):
# window 갯수는 전체 리스트 길이 - window 크기 "+1"
# 전체 윈도우 다 더해서 min-max
sliced_list = input_list[j : j + n]
sum_window = sum(sliced_list)
added_list.append(sum_window)
answer = max(added_list) - min(added_list)
print(f"#{i} {answer}") # 무조건 다 for 문 안에
'''
재배열 되는 줄 알고 한 삽질,,,
min_m += (sorted_list[j])
max_m += (sorted_list[(m_n[0]-j-1)])
#m_n[0] = 들어있는 항 갯수이므로 거기서 -1 해줘야 제대로 된 index
#-1 안 하면 범위 초과 runtime error
#reversed() 함수 쓰면 reversed_list 때문에 runtime error
#sorted 하나로 풀어라!
'''