-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의 위치 때문에 여러 번 틀렸습니다.
'Beakjoon&프로그래머스 > 파이썬' 카테고리의 다른 글
[백준/파이썬] 1912번 연속합 (0) | 2022.05.11 |
---|---|
[백준/파이썬] 22857번 가장 긴 짝수 연속한 부분 수열 (small) (0) | 2022.05.11 |
[백준/파이썬] 15565번 귀여운 라이언 (0) | 2022.05.11 |
[백준/파이썬] 3273번 두 수의 합 (0) | 2022.05.10 |
[백준/파이썬] 6159번 코스튬 파티 (0) | 2022.05.10 |