λ¬Έμ
λ§€μΌ μμΉ¨ 9μμ νκ΅μμ μΈ‘μ ν μ¨λκ° μ΄λ€ μ μμ μμ΄λ‘ μ£Όμ΄μ‘μ λ, μ°μμ μΈ λ©°μΉ λμμ μ¨λμ ν©μ΄ κ°μ₯ ν° κ°μ μμλ³΄κ³ μ νλ€.
μλ₯Ό λ€μ΄, μλμ κ°μ΄ 10μΌ κ°μ μ¨λκ° μ£Όμ΄μ‘μ λ,
3 -2 -4 -9 0 3 7 13 8 -3
λͺ¨λ μ°μμ μΈ μ΄νκ°μ μ¨λμ ν©μ μλμ κ°λ€.
μ΄λ, μ¨λμ ν©μ΄ κ°μ₯ ν° κ°μ 21μ΄λ€.
λ λ€λ₯Έ μλ‘ μμ κ°μ μ¨λκ° μ£Όμ΄μ‘μ λ, λͺ¨λ μ°μμ μΈ 5μΌ κ°μ μ¨λμ ν©μ μλμ κ°μΌλ©°,
μ΄λ, μ¨λμ ν©μ΄ κ°μ₯ ν° κ°μ 31μ΄λ€.
λ§€μΌ μΈ‘μ ν μ¨λκ° μ μμ μμ΄λ‘ μ£Όμ΄μ‘μ λ, μ°μμ μΈ λ©°μΉ λμμ μ¨λμ ν©μ΄ κ°μ₯ ν° κ°μ κ³μ°νλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ λ ₯
첫째 μ€μλ λ κ°μ μ μ Nκ³Ό Kκ° ν κ°μ 곡백μ μ¬μ΄μ λκ³ μμλλ‘ μ£Όμ΄μ§λ€. 첫 λ²μ§Έ μ μ Nμ μ¨λλ₯Ό μΈ‘μ ν μ 체 λ μ§μ μμ΄λ€. Nμ 2 μ΄μ 100,000 μ΄νμ΄λ€. λ λ²μ§Έ μ μ Kλ ν©μ ꡬνκΈ° μν μ°μμ μΈ λ μ§μ μμ΄λ€. Kλ 1κ³Ό N μ¬μ΄μ μ μμ΄λ€. λμ§Έ μ€μλ λ§€μΌ μΈ‘μ ν μ¨λλ₯Ό λνλ΄λ Nκ°μ μ μκ° λΉμΉΈμ μ¬μ΄μ λκ³ μ£Όμ΄μ§λ€. μ΄ μλ€μ λͺ¨λ -100 μ΄μ 100 μ΄νμ΄λ€.
μΆλ ₯
첫째 μ€μλ μ λ ₯λλ μ¨λμ μμ΄μμ μ°μμ μΈ KμΌμ μ¨λμ ν©μ΄ μ΅λκ° λλ κ°μ μΆλ ₯νλ€.
μμ μ λ ₯ 1
10 2
3 -2 -4 -9 0 3 7 13 8 -3
μμ μΆλ ₯ 1
21
μμ μ λ ₯ 2
10 5
3 -2 -4 -9 0 3 7 13 8 -3
μμ μΆλ ₯ 2
31
λ¬Έμ νμ΄
import sys
from collections import deque
n,k=map(int, sys.stdin.readline().split(' '))
numbers=list(map(int, sys.stdin.readline().split(' ')))
# init
knumbers=deque(numbers[:k])
cur_sum=sum(knumbers)
max_value=cur_sum
for i in range(k, n):
cur_sum-=knumbers.popleft()
cur_sum+=numbers[i]
knumbers.append(numbers[i])
max_value=max(max_value, cur_sum)
print(max_value)
λ¨μν λͺ¨λ kκ°μ μ°μ μμ΄μ νμνκΈ° μν΄ μ¬λΌμ΄μ±νλ λ°©μμ Nμ΄ μ΅λ 100,000κ°μ΄κ³
list[a:b]λ₯Ό ꡬνλ κ²½μ° μκ°λ³΅μ‘λκ° O(b-a)λ§νΌ λ€κΈ° λλ¬Έμ μκ° μ΄κ³Όκ° λ°μν κ±°λΌκ³ μκ°νλ€.
κ·Έλμ knumbersμ μ²μλΆν° kκ°μ μμλ₯Ό λ£μ΄λκ³ , forλ¬Έμ λλ©΄μ μ μΌ μ λ°μ΄ν°λ λΉΌμ£Όκ³ , μ μΌ λ€μ λ€μ λ°μ΄ν°λ₯Ό λ£μ΄μ£Όλ©΄μ max_valueλ₯Ό λ ν° κ°μΌλ‘ μ λ°μ΄νΈνλ λ°©μμ μ¬μ©νλ€.
'μκ³ λ¦¬μ¦ > μν' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€ 1010 π₯] λ€λ¦¬ λκΈ° (0) | 2023.11.02 |
---|---|
[λ°±μ€ 1717 π₯] μ§ν©μ νν (0) | 2023.07.16 |