728x90
📌 문제
https://swexpertacademy.com/main/main.do
📌 문제 접근 방법
- M개의 숫자의 합을 구해야하므로 max, min을 처음부터 M개의 숫자의 합으로 초기화
- 현재 total에 저장된 numbers 리스트의 맨 앞의 값(i)을 빼고 맨 뒤의 값의 바로 뒤의 값(M+i) 더하기
- max, min 비교
📌 코드
import sys
sys.stdin = open('input.txt')
T = int(input())
for t in range(1, T+1) :
N, M = map(int, input().split())
numbers = list(map(int, input().split()))
total = 0
for number in numbers[:M] :
total += number
max_sum = min_sum = total
i = 0
while M+i < N :
total -= numbers[i]
total += numbers[M+i]
if total < min_sum :
min_sum = total
elif total > max_sum :
max_sum = total
i += 1
print(f'#{t} {max_sum-min_sum}')
728x90
'ALGORITHM > SW Expert Academy' 카테고리의 다른 글
[SWEA/Python] 4837. 부분집합의 합 (0) | 2021.08.13 |
---|---|
[SWEA/Python] 4836. 색칠하기 (0) | 2021.08.13 |
[SWEA/Python] 4831. 전기버스 (0) | 2021.08.13 |
[SWEA/Python] 1206. View (0) | 2021.08.13 |
[SWEA/Python] 1954. 달팽이 숫자 (0) | 2021.08.09 |
댓글