토니의 연습장
누적합 배열 예제 본문
https://www.acmicpc.net/problem/2559
N, K = list(map(int, input().split()))
A = list(map(int, input().split()))
# 누적합
psum = [0]*N
psum[0] = A[0]
for i in range(1,N):
psum[i] = psum[i-1]+A[i]
# 연속된 K일 온도합
temp_sum = []
for i in range(0,N-K+1):
# i ~ i+K-1
if i==0:
sum=psum[i+K-1]
else:
sum=psum[i+K-1]-psum[i-1]
temp_sum.append(sum)
print(max(temp_sum))
https://www.acmicpc.net/problem/14465
N, K, B = list(map(int, input().split()))
check = [0]*N
for _ in range(B):
id = int(input())
check[id-1] = 1
psum = [0]*N
psum[0] = check[0]
for i in range(1, N):
psum[i] = psum[i-1] + check[i]
need = []
for i in range(0, N-K+1): # 0부터 N-K번까지 탐색
# i ~ i+K-1
if i==0:
num = psum[i+K-1]
else:
num = psum[i+K-1]-psum[i-1]
need.append(num)
print(min(need))
'Algorithm > Ch 3. 응용 자료구조' 카테고리의 다른 글
해쉬 예제 (1) | 2025.01.04 |
---|---|
우선 순위 큐 예제 (0) | 2025.01.04 |
그래프 예제 (1) | 2025.01.04 |
트리 예제 (1) | 2025.01.04 |