본문 바로가기
Beakjoon&프로그래머스/파이썬

[백준/파이썬] 10025번 게으른 백곰

by 현장 2022. 5. 11.

-Code

import sys
input = sys.stdin.readline
MAX = 1000001
pails = [0] * MAX
n, k = map(int, input().split())
for _ in range(n):
    g, x = map(int, input().split())
    pails[x] = g
step = k * 2 + 1
total = sum(pails[:step])
max_ice = total
for i in range(step, MAX):
    total += pails[i] - pails[i - step]
    max_ice = max(max_ice, total)
print(max_ice)

전에 deque로 투 포인터를 푼 거처럼 step을 가지고 첫 리스트를 정하고 거기서 값을 조정하는 식으로 해결을 했으나 처음에 max값을 계속 저장하는 max_ice의 위치 때문에 여러 번 틀렸습니다.