본문 바로가기
ALGORITHM/SW Expert Academy

[SWEA/Python] 4835. 구간합

by 안녕나는현서 2021. 8. 13.
728x90

📌 문제

https://swexpertacademy.com/main/main.do

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

📌 문제 접근 방법

  1. M개의 숫자의 합을 구해야하므로 max, min을 처음부터 M개의 숫자의 합으로 초기화
  2. 현재 total에 저장된 numbers 리스트의 맨 앞의 값(i)을 빼고 맨 뒤의 값의 바로 뒤의 값(M+i) 더하기
  3. 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

댓글